(level1) [PCCE 기출문제] 9번 / 지폐 접기

송재호·2025년 8월 13일
0

https://school.programmers.co.kr/learn/courses/30/lessons/340199

이건 뭐 문제에서 의사코드를 주니까 그대로 치면 정답인데..
아무튼 이런 가로/세로 문제는 min, max값을 구해서 다른 편의 min, max와 비교하면 회전 상태까지 고려할 수 있다.

다른 사람들 풀이도 봤는데, min, max 함수를 따로 빼서 하는건 좋지만
while문 조건에 min(wallet), max(wallet)이 들어가게 되면 매번 평가할 것 같은데... 지갑은 안 변하기 때문에 나처럼 초기화하는게 맞다고 봄

class Solution {
    public int solution(int[] wallet, int[] bill) {
        int answer = 0;
        
        int walletMin = Math.min(wallet[0], wallet[1]);
        int walletMax = Math.max(wallet[0], wallet[1]);
        
        int min = Math.min(bill[0], bill[1]);
        int max = Math.max(bill[0], bill[1]);
        
        while (min > walletMin || max > walletMax) {
            if (bill[0] > bill[1]) {
                bill[0] /= 2;
            } else {
                bill[1] /= 2;
            }
            min = Math.min(bill[0], bill[1]);
            max = Math.max(bill[0], bill[1]);
            answer++;
        }
        
        return answer;
    }
}
profile
식지 않는 감자

0개의 댓글