Contents
https://school.programmers.co.kr/learn/courses/30/lessons/340199
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 자체는 어렵지 않다 지갑에 지폐가 들어갈 때까지 가로 세로 반으로 접어서 접는 회수를 반환하면 됨
접었을 때 소수점이 생긴다면 버린다
접을 때는 긴 쪽으로만 접어서 메소드를 만들어줬다 무조건 큰 수가 0번 항으로 오게끔
지폐는 90도 돌려서 들어갈 수도 있다
근데 테스트 케이스가 1번만 빼고 다 되는겨 그래서 질문하기에 나랑 같은 사람이 있었다
알고보니까 지폐를 안접는 경우를 생각을 안했던 것이었음~
// 프로그래머스 지폐 접기
// 지폐마다 여러번 접어서 지갑에 넣어야 함
// 지폐는 돌려서 넣을 수도 있음
// 1. 항상 긴 쪽을 반으로 접는다
// 2. 접기 전 길이가 홀수라면 소수점 이하는 버림
// 3. 접힌 지폐가 들어간다면 그만 접는다
// 최소 접는 횟수 반환
class Solution {
public int solution(int[] wallet, int[] bill) {
int answer = 0;
// 긴쪽 0으로 다 보냄
wallet = charr(wallet);
bill = charr(bill);
while (true) {
// 지갑 길이와 일치하거나 작아지면 종료, 0이 입력될 수도 있음
if (wallet[0] >= bill[0] && wallet[1] >= bill[1])
break;
// 90도 돌려서 한번 더 확인 종료
if (wallet[0] >= bill[1] && wallet[1] >= bill[0])
break;
// 긴 것[0]만 접음
bill[0] = bill[0] / 2;
answer++;
bill = charr(bill);
}
return answer;
}
// 배열 큰게 앞으로 오게 하는 메소드
public int[] charr(int[] arr) {
return (arr[0] > arr[1]) ? new int[] { arr[0], arr[1] } : new int[] { arr[1], arr[0] };
}
}
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 추억 점수 (JAVA) (0) | 2024.12.28 |
---|---|
[프로그래머스] 달리기 경주 (JAVA) (0) | 2024.12.28 |
[프로그래머스] [PCCP 기출문제] 1번 / 동영상 재생기 (JAVA) (0) | 2024.12.22 |
[프로그래머스] [PCCP 기출문제] 1번 / 붕대 감기 (JAVA) (4) | 2024.12.22 |
[프로그래머스] 옹알이 (2) (JAVA) (2) | 2024.06.25 |