프로그래머스 - 다트게임 이 문제를 마지막으로 프로그래머스 1단계 문제는 모두 풀었다. 이제 카카오 문제 제외하고는 대부분 1단계 문제는 금방 푸는 것 같다. 정말 간단한 거는 10초도 안 걸리고 오래 걸려도 5분 안에는 푼다. 이제 2단계를 다 풀어야 하는데 다음 주면 리액트 주차 시작이라 여유가 있지 않을 것 같다ㅠ 1단계 중 카카오 문제는 난이도가 다른 1단계에 비해 있는 편이라 항상 푸는데 오래걸렸는데 이 문제는 생각보다 금방 풀리긴 했다. 하지만 정규표현식을 활용하지 않아 좀 까다롭고 이 때문에 코드의 가독성이 좋지 않다는 생각이 들었다. 답안 제출 후 다른 분들의 풀이를 보니 역시 예상했던대로 정규식 표현을 사용해 푼 답안이 가장 좋아요를 많이 받았다. 저번처럼 정규식 표현에 익숙해지려고 노력..
프로그래머스 - 비밀지도 이번 문제도 잘 풀었다고 생각했는데 답안 제출 후 한 분의 풀이에서 처음 보는 문법을 알게 되어 포스팅하게 되었다. 짧다고 무조건 좋은 코드는 아니겠지만, 저렇게 할 수 있는 사람은 효율적인 코드를 알면서 일부러 짧은 코드로 제출하고 있는 게 아닌가 싶다. 이 부분에 대해선 내 풀이에 대한 설명 후 적겠다. 아무튼 능력자들! 풀이 과정 내가 푼 풀이과정을 요약하면 다음과 같다. 1. 10진수를 2진수로 변환한다. 2. arr1, arr2의 각 숫자들을 더한다. 3. 그 값이 0이라면 " "으로, 0보다 크다면 "#"을 출력한다. 1. 10진수를 2진수로 변환한다. 주어진 배열 두 개를 (arr1, arr2) 2진수로 바꾸고 보든 2진수가 주어진 n개의 숫자로 이뤄져야하므로 pa..
프로그래머스 - 3진법 뒤집기 주어진 n의 수를 3진법으로 바꾸고 다시 10진법으로 바꾸면서 조금 생각하다가 왠지 변환해주는 메서드가 있을 것 같아서 찾아보았다. 간단하지만 잘 알고 있으면 언젠가 또 요긴하게 쓸 것 같아 기록한다. Method Number.toString([radix]) : 숫자를 문자열로 변환하여 반환한다. 진법을 나타내는 2~36 사이의 정수값을 인수로 전달할 수 있다. 인수 생략시 기본값 10진법이 지정된다. parseInt(string, radix) : 전달 받은 문자열을 전달 받은 radix로 분석한 정수를 반환한다. 자주 썼던 메서드 두개인데 다른 진법으로도 변환이 가능한 줄은 몰랐다. 전체 답안 function solution(n) { let answer = n.toStri..
프로그래머스 - 실패율 이 문제와 비슷한 유형의 문제를 푼 적이 있어서 그런 식으로 풀었다가 시간 초과 났다.. 지금 보니까 배열을 자르고 넣고 자르고 넣고 아주 많은 연산을 해버렸다.. 작성 답안 내가 푼 풀이이다. 몇몇 테스트 케이스는 통과도 안되었고 무엇보다 성능이 좋지 않다. while문에서 크게 처리시간을 잡아먹었다. 또 실패율이 같을 때는 스테이지가(index) 작은 것부터 출력해야 되었던 부분에서 잘못 파고든 것 같다. 현재 스테이지와 스테이지에 도달한 플레이어를 나누는 부분에서 stage를 뜻하는 index i를 넣어주는 게 포인트였다. 나는 그 i 를 구하려고 index라는 변수를 새로 선언했는데 전혀 그럴 필요가 없었다. sort() 비교함수에서 그 조건들을 이미 만족시켜 반환해주기 ..
프로그래머스 -폰켓몬 조금 수월하게 푼 문제는 포스팅까지 하지는 않는데 제출 후 다른 분 답변을 보고 실행해봤더니 훨씬 더 많은 테스트케이스일 경우에 처리속도가 현저히 빨랐다. 중복된 값을 제거해주는 Set 객체를 이용한 연산이었다. 나도 한 번 더 생각했으면 내가 쓴 코드에서 value값을 쓰지 않았다는 것을 알았을 텐데..! 하는 생각에 좀 아쉬웠다. 풀이 과정 *nums개수는 짝수이기 때문에 1개인 경우는 생각하지 않아도 됨. 1. 가질 수 있는 인형 개수 구하기 let getToyCount = nums/2 = 3 2. 똑같은 인형의 개수가 얼마큼 있는지 분류해주자. 3. maxCount를 구하자 3.1 key의 개수와 maxCount와 같은가? > count가 key개수보다 크거나 같을 때 성립된..
프로그래머스 - 체육복 최대한 피하고 싶었던 이중 for문을 썼다. 제출 후 다른 분들이 푸신 답들을 보며 확 와닿는 게 없다가 밑부분에서 발견했다. 내가 썼던 이중 반복문을 filter()와 find()를 이용하였고 , shift()를 쓰지 않고 delete라는 연산자를 써서 더 효율적인 코드 같았다. 풀이과정 CS50강의를 들으며 의사 코드이라는 코드 표현 방식을 알게 된 후로 더 적극 활용하게 되었다. 물론 완벽한 형식의 의사 코드는 아니지만..:) 엊그제 예외처리로 애를 먹었던 경험이 있어서 오늘은 모든 경우를 생각하려고 노력했다. 1. 중복의 제거, lost에있는 번호와 reseve에 있는 번호가 같으면 lost, reserve 둘 다 배열에서 빼준다 (filter) 1.2 lost, reser..
프로그래머스 - 크레인 인형 뽑기 게임 이 문제는 예외처리를 하느라 푸는데 시간이 오래 걸렸다. 프로그래머스는 제출할 때 여러 테스트 케이스로 검사하는데 이 문제는 테스트 케이스가 17개였고, 처음에는 단 한 개만 통과되서 한참 고민하다가 예외처리 하나를 해줬더니 두 번째에는 1-2 테스트 케이스가 통과되었고 나머지들은 또 다른 예외처리를 해주었더니 한번에 통과가 되었다. 프로그래머스는 보안상 문제로 테스트케이스를 공개하지 않는다고 한다. 진짜 뭔지 알려주기라도 하면 어디가 잘못됐는지 알았을 텐데 모르니까 미칠뻔했다.. 오늘은 예외처리의 중요성을 뼈저리게 느끼게 되었기 때문에 풀이를 하며 내가 처음에 놓쳤던 조건들을 짚고 넘어가 볼 것이다. 풀이과정 & 예외처리 이 문제는 이차원 배열을 사용해서 인형뽑기..
프로그래머스 - 키패드 누르기 문제의 의도를 처음부터 잘 못 파악하며 풀었다. 왼손과 오른손 값이 같을 때 더 가까운 손으로 누르라고 한 부분에서 키패드 위치 값이 아닌 단순히 숫자의 차로 오해했다. 아무튼 그냥 각 숫자에 해당하는 손을 answer에 push하고 center부분에서 조건을 따지려고 했는데 그때서야 잘못 파악한 걸 알아차렸고,, 접근을 어떻게해야할지 모르겠어서 다른 분의 풀이를 참고했다. 이 문제는 right, left의 값을 계속해서 상황에 맞게 업데이트해주고, 두 지점 간 거리를 절댓값으로 구하는 것 이 두 가지가 핵심이 되겠다. 예전에 이런식으로 위치를 좌표값처럼 생각해서 접근한 적이 있었는데 이런 유형의 문제도 잘 기억해둬야겠다는 생각이 들었다. 내가 풀었던 부분인데, 나는 key..
- Total
- Today
- Yesterday
- 네트워크
- html
- 알고리즘자바스크립트
- python
- GIT
- 리액트네이티브
- cs50
- 항해99
- 자바스크립트 비동기 처리
- 프로그래머스 베스트앨범 자바스크립트
- 프로그래머스 자바스크립트
- github
- 프로그래머스
- reactquery
- React
- 타입스크립트
- network
- css
- 자바스크립트
- React Query
- 실전프로젝트
- 자바스크립트 클로저
- 클로저
- 모두를위한컴퓨터과학
- javascript
- 자바스크립트알고리즘
- 백준
- 무한스크롤
- 리액트
- 모두를 위한 컴퓨터 과학
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |