[프로그래머스|JAVA|오늘의 연습 문제] <PCCE 기출문제> 9번 / 지폐 접기

2025. 6. 24. 15:58💻코딩/💡Programmers

728x90
반응형

[문제 링크]

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


 

import java.util.*;

class Solution {
    public int solution(int[] wallet, int[] bill) {
        int answer = 0;
        
        while(check(wallet, bill)){
            if(bill[0] > bill[1]){
                bill[0] = bill[0] / 2;
            }
            else {
                bill[1] = bill[1] / 2;
            }
            answer++;
        }
        return answer;
    }
    
    public boolean check(int[] wallet, int[] bill) {
        int b_min = Math.min(bill[0], bill[1]);
        int b_max = Math.max(bill[0], bill[1]);
        int w_min = Math.min(wallet[0], wallet[1]);
        int w_max = Math.max(wallet[0], wallet[1]);
        
        return b_min > w_min || b_max > w_max ? true : false;
    }
}
접근법은 프로그래머스 자체에 있으므로 따로 작성하지 않겠습니다.

 

 

 

📍아쉬운 점

다른 분들의 코드를 보니 좀 더 메소드를 잘 활용할 수 있었다는 것을 깨달았다.
max와 min 메소드를 생성하여 배열의 큰 값과 작은 값을 구해주도록 하면 check 메소드 안에 4개의 변수를 작성하지 않고, 그렇다면 더 간결하고 효율성이 좋았을 것 같다.

 

 

 

728x90
반응형