코딩테스트
[프로그래머스] [PCCE 기출문제] 9번 / 지폐 접기 자바
mhui123
2025. 3. 25. 16:16
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/340199
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
반복문을 사용하여, 지폐크기를 비교한 후 지폐크기 < 지갑크기가 될 때 까지의 접은 횟수를 반환하는 문제이다.
여기서 지폐의 회전을 허용하므로 두 종류의 비교를 사용하여 문제를 처리하였다.
- billX <= walletX && billY <= walletY
- billY <= walletX && billX <= walletY
- 둘 중 하나의 조건에 부합할 때 까지 조건문을 반복하고 반복횟수를 반환한다
public int solution(int[] wallet, int[] bill) {
return calFold(wallet, bill);
}
// 접은 횟수 반환
public int calFold(int[] wallet, int[] bill){
int foldCount = 0;
int walletX = wallet[0];
int walletY = wallet[1];
int billX = bill[0];
int billY = bill[1];
while(true){
boolean isFit = billX <= walletX && billY <= walletY;
boolean isRotatedFit = billY <= walletX && billX <= walletY;
if(isFit || isRotatedFit) {
break;
}
if(billX > billY){
billX /= 2;
} else if(billY > billX){
billY /= 2;
}
foldCount ++;
}
return foldCount;
}
반응형