[Programmers_CT] 17. 지폐 접기

문정준's avatar
Feb 26, 2025
[Programmers_CT] 17. 지폐 접기
💡
프로그래머스 코딩 테스트 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

sxias