본문 바로가기

프로그래머스(Java)/Level 0

[프로그래머스] 1로 만들기

728x90

코드 힌트

  1. 초기화
    • result 변수는 모든 연산의 총 횟수를 기록하기 위해 사용됩니다.
  2. 배열 요소 순회
    • num_list 배열의 각 요소를 순회하면서, 각 숫자가 1이 될 때까지 필요한 연산 횟수를 계산합니다.
    • 배열을 순회할 땐 for문 혹은 forEach문을 사용하여 배열의 요소에 접근합니다.
    • 배열 요소를 1이 될 때까지 반복은 while문을 사용하여 n > 1일 때 반복하게 합니다.
  3. 짝수와 홀수 처리
    • 짝수일 때: 해당 숫자를 절반으로 나눕니다. 예를 들어, 8 -> 4 -> 2 -> 1과 같은 과정입니다.
    • 홀수일 때: 먼저 1을 뺀 후 절반으로 나누어 짝수로 만듭니다. 예를 들어, 7 -> 6 -> 3 -> 2 -> 1과 같은 과정입니다.
  4. 연산 횟수 누적
    • 각 숫자에 대해 연산이 수행될 때마다 result 변수를 증가시킵니다.
  5. 최종 결과 반환
    • 모든 숫자에 대해 연산이 완료된 후, 총 연산 횟수를 반환합니다.

 


정답은 더보기 클릭

더보기
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;  // 모든 연산이 끝난 후 최종 결과 반환
    }
}
728x90