inblog logo
|
sxias
    Programmers_CT

    [Programmers_CT] 17. 지폐 접기

    문정준's avatar
    문정준
    Feb 26, 2025
    [Programmers_CT] 17. 지폐 접기
    Contents
    1. 문제 설명제한 사항2. 입출력 예시3. 코드 작성4. 테스트 결과5. 채점
    💡
    프로그래머스 코딩 테스트 1. 지폐 접기
     

    1. 문제 설명

    notion image
     

    제한 사항

    notion image

    2. 입출력 예시

    notion image

    3. 코드 작성

    class Solution { public int solution(int[] wallet, int[] bill) { int answer = 0; while(true) { int bill_min = bill[0] < bill[1]? bill[0] : bill[1]; int bill_max = bill[0] > bill[1]? bill[0] : bill[1]; int wallet_min = wallet[0] < wallet[1]? wallet[0] : wallet[1]; int wallet_max = wallet[0] > wallet[1]? wallet[0] : wallet[1]; if(wallet_min < bill_min){ if (bill[0] > bill[1]) bill[0] /= 2; else bill[1] /= 2; answer++; } else if(wallet_max < bill_max) { if (bill[0] > bill[1]) bill[0] /= 2; else bill[1] /= 2; answer++; } else break; } return answer; } }
    1. 지폐를 접는 횟수를 저장할 변수 answer 선언
    1. 반복문을 통해 지폐가 지갑의 크기 이하가 될 때 까지 지폐를 접기
        • 이 때, 지폐를 돌려서 넣을 수도 있으므로, 지갑과 지폐의 제일 크거나 제일 작은 값끼리 비교
      1. 지폐 길이의 최솟값이 지갑 길이의 최솟값보다 클 때 ( 90도 돌려보기 )
          • 가로, 세로 중 더 큰 값을 2로 나눔
          • int로 선언되어 있으므로 소수점은 알아서 버려짐
          • 접는 횟수 증가 (answer++)
      2. 지폐 길이의 최댓값이 지갑 길이의 최댓값보다 클 때 ( 그냥 넣기 )
          • 가로, 세로 중 더 큰 값을 2로 나눔
          • int로 선언되어 있으므로 소수점은 알아서 버려짐
          • 접는 횟수 증가 (answer++)
      3. 지폐가 지갑에 들어갈 크기가 되면 (가로, 세로가 지갑보다 작으면) break
    1. answer 반환

    4. 테스트 결과

    notion image
     

    5. 채점

    notion image
    Share article
    Contents
    1. 문제 설명제한 사항2. 입출력 예시3. 코드 작성4. 테스트 결과5. 채점

    Sxias ㆍ a32176740@gmail.com

    RSS·Powered by Inblog