문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12980#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
로직
- 전진해야 할 거리가 홀수이면 에너지를 써 1칸 전진하고,
if(n%2 !=0) n--; answer++;
- 전진해야 할 거리가 짝수이면 순간이동한다.
else n /= 2;
코드
import java.util.*;
public class Solution {
public int solution(int n) {
int ans = 0;
while(n!=0) {
if(n%2 != 0) {
n--;
ans++;
} else {
n /= 2;
}
}
return ans;
}
}
채점 결과
정확성 테스트
테스트 1 〉 통과 (0.03ms, 75.2MB)
테스트 2 〉 통과 (0.02ms, 72.8MB)
테스트 3 〉 통과 (0.02ms, 90.6MB)
테스트 4 〉 통과 (0.03ms, 74.8MB)
테스트 5 〉 통과 (0.02ms, 74.5MB)
테스트 6 〉 통과 (0.02ms, 86.7MB)
테스트 7 〉 통과 (0.02ms, 71.4MB)
테스트 8 〉 통과 (0.02ms, 74.3MB)
테스트 9 〉 통과 (0.01ms, 77.4MB)
테스트 10 〉 통과 (0.02ms, 70.2MB)
테스트 11 〉 통과 (0.02ms, 74.7MB)
테스트 12 〉 통과 (0.03ms, 76.2MB)
테스트 13 〉 통과 (0.03ms, 74.6MB)
테스트 14 〉 통과 (0.02ms, 73.7MB)
테스트 15 〉 통과 (0.02ms, 72.9MB)
테스트 16 〉 통과 (0.02ms, 73.2MB)
테스트 17 〉 통과 (0.02ms, 74.4MB)
테스트 18 〉 통과 (0.03ms, 79.2MB)
효율성 테스트
테스트 1 〉 통과 (0.02ms, 51.6MB)
테스트 2 〉 통과 (0.02ms, 58.5MB)
테스트 3 〉 통과 (0.02ms, 52.6MB)
테스트 4 〉 통과 (0.02ms, 52.2MB)
테스트 5 〉 통과 (0.02ms, 52.2MB)
테스트 6 〉 통과 (0.02ms, 52.3MB)
테스트 7 〉 통과 (0.02ms, 51.5MB)
테스트 8 〉 통과 (0.01ms, 51.9MB)
테스트 9 〉 통과 (0.02ms, 52.4MB)
테스트 10 〉 통과 (0.02ms, 52.2MB)
채점 결과
정확성: 60.0
효율성: 40.0
합계: 100.0 / 100.
좋은 풀이
이기현 , ghkvud2 , 장유리 , MyeongGeun Jo 외 69 명
public class Solution {
public int solution(int n) {
return Integer.bitCount(n);
}
}
배운 점
Integer.bitCount(n)
- 숫자 n을 이진수로 변환해서, 1비트의 개수를 반환하는 메소드!
- 2로 나누었을 때 홀수이면 1을 반환하고, 그렇지 않으면 0을 반환하는 이진법을 구하는 로직과, 이 문제의 로직이 동일함.
'코딩테스트 - 프로그래머스 > JAVA' 카테고리의 다른 글
[프로그래머스 / 코딩테스트 연습 / 자바(JAVA)] 멀리 뛰기 (1) | 2024.04.03 |
---|---|
[프로그래머스 / 탐욕법(Greedy) / 자바(JAVA)] 구명보트 (1) | 2024.03.18 |
[프로그래머스 / 코딩테스트 입문 / 자바(JAVA)] 이진수 더하기 (0) | 2024.03.07 |
[프로그래머스 / 코딩테스트 입문 / 자바(JAVA)] 등수 매기기 (0) | 2024.03.06 |
[프로그래머스 / 코딩테스트 입문 / 자바(JAVA)] 특이한 정렬 (0) | 2024.03.06 |