프로그래머스(Java)/Level 0
[프로그래머스] 1로 만들기
shs00925
2024. 8. 12. 16:49
코드 힌트
- 초기화
- result 변수는 모든 연산의 총 횟수를 기록하기 위해 사용됩니다.
- 배열 요소 순회
- num_list 배열의 각 요소를 순회하면서, 각 숫자가 1이 될 때까지 필요한 연산 횟수를 계산합니다.
- 배열을 순회할 땐 for문 혹은 forEach문을 사용하여 배열의 요소에 접근합니다.
- 배열 요소를 1이 될 때까지 반복은 while문을 사용하여 n > 1일 때 반복하게 합니다.
- 짝수와 홀수 처리
- 짝수일 때: 해당 숫자를 절반으로 나눕니다. 예를 들어, 8 -> 4 -> 2 -> 1과 같은 과정입니다.
- 홀수일 때: 먼저 1을 뺀 후 절반으로 나누어 짝수로 만듭니다. 예를 들어, 7 -> 6 -> 3 -> 2 -> 1과 같은 과정입니다.
- 연산 횟수 누적
- 각 숫자에 대해 연산이 수행될 때마다 result 변수를 증가시킵니다.
- 최종 결과 반환
- 모든 숫자에 대해 연산이 완료된 후, 총 연산 횟수를 반환합니다.
정답은 더보기 클릭
더보기
class Solution {
public int solution(int[] num_list) {
int result = 0; // 연산 횟수를 저장할 변수
// num_list 배열의 각 요소를 순회
for (int n : num_list) {
// n이 1이 될 때까지 반복
while (n > 1) {
if (n % 2 == 0) { // n이 짝수인 경우
n /= 2; // n을 절반으로 나눈다
} else { // n이 홀수인 경우
n = (n - 1) / 2; // n에서 1을 빼고 절반으로 나눈다
}
result++; // 연산 횟수를 증가
}
}
return result; // 모든 연산이 끝난 후 최종 결과 반환
}
}