반응형
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12980
2. 코드
부분 정답 및 타임 오버)
n이 작은 경우에는 적용되었는데, n이 크면 적용이 되지 않았다. 방법이 잘 못 된 것 같다.
function solution(n)
{
let cnt = 1;
let cur = 1;
while(cur < n){
if((n - cur) % 2 === 1 ) {
cur *= 2;
}
else if((n - cur) % 2 === 0) {
++cur;++cnt;
}
}
return cnt;
}
정답)
앞에서부터 가면 따져줄 조건이 많으니 뒤에서 부터 역으로 오는 방식을 사용한다.
도착 지점 n이 2로 나누어 떨어진다면 2로 계속해서 나눠주고, 2로 나누어 떨어지지 않는다면 한칸만 뒤로 돌아간다고 생각하여 n에 1을 빼준다.
function solution(n) {
let answer = 0;
while(n > 0) {
if(n % 2 === 0) {
n /= 2;
} else {
n--;
answer++;
}
}
return answer;
}
아...누가 뒤에서부터 따지는 것을 대번에 생각하냐고.. 난 아직 멀었다.. 코테 준비 더 열심히 해야해ㅠㅠㅠ노트에 열심히 그림그리고 경우의 수 따져가며 풀었던 시간들이 스쳐지나가면서 눈물도 눈에서 살짝 스쳐지나가는 것 같기도하고^^
응 복기 할 때도 뒤에서부터 따지는 거 생각못했고~~~
복기
5/23
반응형
'프로그래머스 > 구현' 카테고리의 다른 글
[문자열] 프로그래머스 '괄호 회전하기' - js (0) | 2023.03.28 |
---|---|
[구현] 프로그래머스 'N개의 최소공배수' - js (0) | 2023.03.27 |
[구현] 프로그래머스 '예상 대진표' - js (0) | 2023.03.17 |
[문자열] 프로그래머스 '영어 끝말잇기' -js (0) | 2023.03.17 |
[배열] 프로그래머스 '다음 큰 숫자' - js (0) | 2023.03.17 |