inblog logo
|
LHS's Study Space
    알고리즘문제풀기프로그래머스

    [프로그래머스] 지폐 접기(340199)

    lhs's avatar
    lhs
    Nov 24, 2024
    [프로그래머스] 지폐 접기(340199)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/340199
     

    1. 문제 풀이 아이디어

    • 문제에 주어진 의사코드를 그대로 구현하면 문제를 해결할 수 있다.

    2. 나의 정답 코드

    class Solution { public int solution(int[] wallet, int[] bill) { int answer = 0; while (true) { int walletMin = Math.min(wallet[0], wallet[1]); int walletMax = Math.max(wallet[0], wallet[1]); int billMin = Math.min(bill[0], bill[1]); int billMax = Math.max(bill[0], bill[1]); if (billMin <= walletMin && billMax <= walletMax) break; if (bill[0] > bill[1]) bill[0] /= 2; else bill[1] /= 2; answer++; } return answer; } }

    3. 정리

    • while 반복문 안에서 지갑과 지폐의 최소값과 최대값을 저장한다.
    • 지갑의 최소값이 지폐의 최소값 이상이고, 지갑의 최대값이 지폐의 최대값 이상일 때 반복문을 빠져나온다.
    • 반복문에서는 지폐의 큰 값을 2로 나누고, 결과값을 증가시키는 과정을 반복하여 문제를 해결한다.
    Share article

    LHS's Study Space

    RSS·Powered by Inblog