728x90
문제 설명
제한 사항
문제 풀이 방법
- n이 1인 경우를 대비해 처음 배터리 소모량을 1로 선언해 주고
n이 1보다 큰 경우는 계산을 진행해 준다. - 내가 주목한 포인트는 순간이동을 현재까지 이동한 거리의 2배 위치까지 간다는 것이다.
이는 주어진 숫자에 나누기 2를 하며 최단 거리를 구할 수 있다. - 만일 나머지가 1이 나오는 숫자이면 -1을 하면되는데, 이는 1칸 점프를 했다고 가정하고
점프한 횟수 즉 베터리 소모량을 저장한다. - 계산을 이어나가면 숫자가 1이 되는 순간은 점프해서 이동한 것이기에
점프한 횟수(베터리 소모량)를 반환해 준다.
내가 작성한 코드
const solution = (n) => {
let answer = 1
if(n>1){
while(true){
if(n === 1){
return answer;
}
else{
if(n%2 === 0){
n = n / 2;
}
else{
n -= 1;
answer += 1;
}
}
}
}
return answer;
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
2Level / 연습 문제 / 최솟값 만들기 (1) | 2023.05.25 |
---|---|
1Level / 연습 문제 / 최대공약수와 최소공배수 (0) | 2023.05.23 |
2Level / 2020 KAKAO BLIND RECRUITMENT / 문자열 압축 (0) | 2023.05.22 |
2Level / 연습문제 / 숫자 블럭 (0) | 2023.05.18 |
2Level / 2018 KAKAO BLIND RECRUITMENT / [1차] 프렌즈4블록 (0) | 2023.05.15 |