![[프로그래머스/JAVA] 340199번 지폐 접기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUaoqe%2FbtsKp2eMdH2%2FSTjmr4uwJFI9KzRb0IcIsK%2Fimg.png)

[프로그래머스/JAVA] 340199번 지폐 접기Coding Test/Programmers2024. 10. 30. 17:11
목차
문제
문제 링크
[PCCE 기출문제] 9번 / 지폐 접기
https://school.programmers.co.kr/learn/courses/30/lessons/340199
문제 설명
민수는 다양한 지폐를 수집하는 취미를 가지고 있습니다. 지폐마다 크기가 달라 지갑에 넣으려면 여러 번 접어서 넣어야 합니다.
예를 들어 지갑의 크기가 30 * 15이고 지폐의 크기가 26 * 17이라면 한번 반으로 접어 13 * 17 크기로 만든 뒤 90도 돌려서 지갑에 넣을 수 있습니다.
지폐를 접을 때는 다음과 같은 규칙을 지킵니다.
- 지폐를 접을 때는 항상 길이가 긴 쪽을 반으로 접습니다.
- 접기 전 길이가 홀수였다면 접은 후 소수점 이하는 버립니다.
- 접힌 지폐를 그대로 또는 90도 돌려서 지갑에 넣을 수 있다면 그만 접습니다.
지갑의 가로, 세로 크기를 담은 정수 리스트 wallet과 지폐의 가로, 세로 크기를 담은 정수 리스트 bill가 주어질 때,
지갑에 넣기 위해서 지폐를 최소 몇 번 접어야 하는지 return하도록 solution함수를 완성해 주세요.
제한 사항
- wallet의 길이 = bill의 길이 = 2
- 10 ≤ wallet[0], wallet[1] ≤ 100
- 10 ≤ bill[0], bill[1] ≤ 2,000
문제 풀이
접근 방법
- bill 을 접을 때, 긴 변으로만 접어야한다 -> 짧은변, 긴변을 구하는 코드 필요
- wallet 에 bill 이 들어갈 때까지 반복한다 -> 각각 최소값과 최대값을 비교해서 bill 이 wallet 보다 작아질 때까지 반복
코드
public class P_340199 {
public static int solution(int[] wallet, int[] bill) {
// 지폐 접은 횟수
int count = 0;
// bill 의 긴변 인덱스 값 변수
int largeIndex;
// wallet 값 < bill 값 이 없을 때까지 반복
while(max(wallet)<max(bill) || min(wallet)<min(bill)) {
// bill 긴 변 찾고 반으로 접기
largeIndex = bill[0]<bill[1] ? 1 : 0;
bill[largeIndex] /= 2;
// 지폐 접고 횟수 증가
count++;
}
// 지폐 접은 횟수 반환
return count;
}
// 최대값 반환 함수
private static int max(int[] arr) {
return Math.max(arr[0], arr[1]);
}
// 최소값 반환 함수
private static int min(int[] arr) {
return Math.min(arr[0], arr[1]);
}
public static void main(String[] args) {
int[] wallet1 = {30,15};
int[] bill1 = {26,17};
int[] wallet2 = {50,50};
int[] bill2 = {100,241};
System.out.println(solution(wallet1, bill1));
System.out.println(solution(wallet2, bill2));
}
}
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스/JAVA] 250121번 데이터 분석 (1) | 2024.10.31 |
---|---|
[프로그래머스/JAVA] 250125번 이웃한 칸 (1) | 2024.10.30 |
[프로그래머스/JAVA] 92334번 신고 결과 받기 (3) | 2024.10.30 |
[프로그래머스/JAVA] 340213번 동영상 재생기 (1) | 2024.10.30 |
[프로그래머스/JAVA] 250137번 붕대 감기 (0) | 2024.10.30 |

@dundun213 :: dundun213 님의 블로그
dundun213 님의 블로그 입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!