Leaning/C++
[프로그래머스] 9번/ 지폐접기
ksw8596
2024. 11. 21. 21:07
#include <string>
#include <vector>
using namespace std;
//지갑의 가로, 세로 크기를 담은 정수 리스트 wallet
//지폐의 가로, 세로 크기를 담은 정수 리스트 bill
int solution(vector<int> wallet, vector<int> bill) {
int answer = 0;
//wallet 가로 세로의 크기가 bill보다 큰지 보고
//answer은 접은 횟수
while((wallet[0] >= bill[0] && wallet[1] >= bill[1]) || (wallet[0] >= bill[1] && wallet[1] >= bill[0]))
{
if(bill[0] > bill[1])
{
bill[0] /= 2;
}
else
{
bill[1] /= 2;
}
answer++;
}
return answer;
}
wallet의 길이 = bill의 길이 = 2
10 ≤ wallet[0], wallet[1] ≤ 100
10 ≤ bill[0], bill[1] ≤ 2,000
다른분의 것
#include <string>
#include <vector>
using namespace std;
//지폐를 지갑에 넣을 수 있는지 확인하는 함수
bool putwallet(vector<int> &wallet, const vector<int> bill)
{
if(wallet[0] >= bill[0] && wallet[1] >= bill[1])
{
return true;
}
else if(wallet[0] >= bill[1] && wallet[1] >= bill[0])
{
return true;
}
else
{
return false;
}
}
//지갑에 맞을 때 까지 접는 함수
int foldbill(vector<int>& wallet, vector<int>& bill)
{
int answer = 0;
while(false == putwallet(wallet, bill))
{
if(bill[0] > bill[1])
{
bill[0] /= 2;
}
else
{
bill[1] /= 2;
}
answer++;
}
return answer;
}
int solution(vector<int> wallet, vector<int> bill) {
int answer = 0;
answer = foldbill(wallet, bill);
return answer;
}