728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/340199
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 유형
- 구현
문제 난이도
- Lev1
문제 분석
문제에서 주어진 로직대로 구현하면 된다.
1. 지폐를 접은 횟수를 저장할 정수 변수 answer를 만들고 0을 저장합니다.
2. 반복문을 이용해 bill의 작은 값이 wallet의 작은 값 보다 크거나 bill의 큰 값이 wallet의 큰 값 보다 큰 동안 아래 과정을 반복합니다.
2-1. bill[0]이 bill[1]보다 크다면 bill[0]을 2로 나누고 나머지는 버립니다.
2-2. 그렇지 않다면 bill[1]을 2로 나누고 나머지는 버립니다.
2-3. answer을 1 증가시킵니다.
3. answer을 return합니다.
아래 전체 코드에서 flow 대로 코드를 구현해두었다.
전체 코드
import java.util.*;
import java.io.*;
class Solution {
public int solution(int[] wallet, int[] bill) {
// 1. 지폐를 접은 횟수를 저장할 정수 변수 answer를 만들고 0을 저장합니다.
int answer = 0;
int wMin = wallet[0] < wallet[1] ? wallet[0] : wallet[1];
int wMax = wallet[0] < wallet[1] ? wallet[1] : wallet[0];
int bMax = bill[0] < bill[1] ? bill[1] : bill[0];
int bMin = bill[0] < bill[1] ? bill[0] : bill[1];
// 2. 반복문을 이용해 bill의 작은 값이 wallet의 작은 값 보다 크거나 bill의 큰 값이 wallet의 큰 값 보다 큰 동안 아래 과정을 반복합니다.
while (wMin < bMin || bMax > wMax) {
// 2-1. bill[0]이 bill[1]보다 크다면 bill[0]을 2로 나누고 나머지는 버립니다.
if(bill[0] < bill[1]) bill[1] /= 2;
// 2-2. 그렇지 않다면 bill[1]을 2로 나누고 나머지는 버립니다.
else bill[0] /= 2;
bMax = bill[0] < bill[1] ? bill[1] : bill[0];
bMin = bill[0] < bill[1] ? bill[0] : bill[1];
// 2-3. answer을 1 증가시킵니다.
answer++;
}
// 3. answer을 return합니다.
return answer;
}
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[2024 KAKAO INTERN] 주사위 고르기 (0) | 2025.06.05 |
---|---|
[PCCP 기출 10번] 공원 (0) | 2025.06.02 |
[백준 1242번] 소풍 (0) | 2025.06.01 |
[2024 KAKAO INTERN] 도넛과 막대 그래프 (0) | 2025.05.30 |
[2024 KAKAO INTERN] 가장 많이 받은 선물 (0) | 2025.05.29 |