-
[Algorithm] 프로그래머스 C++ : 카펫Algorithm 2020. 8. 27. 03:26
https://programmers.co.kr/learn/courses/30/lessons/42842
yellow가 어떤 가로와 세로 크기를 가지느냐에 따라 brown이 자동으로 정해지기 때문에
yellow가 가질 수 있는 모든 가로x세로 조합을 찾아준다
for문을 1부터 yellow/2까지 돌면서
yellow의 약수이면 그때의 가로(w) 세로(h)값을 정해주고 (단, 가로의 값은 항상 세로의 값보다 크거나 작다는 조건이 있다 if로 걸어주자)
그에 따라 정해지는 brown의 가로(w+2) 세로(h+2)가 주어진 brown의 개수(2*w + 2*h + 4)와 맞는지 체크하고
맞으면 answer에 집어넣고 리턴!
Code
#include <string> #include <vector> #include <iostream> using namespace std; vector<int> solution(int brown, int yellow) { vector<int> answer; int w, h; if(yellow == 1 || yellow == 2 || yellow == 3) { h = 1; w = yellow; answer.push_back(w+2); answer.push_back(h+2); } else { for(int i=1; i<=yellow/2; i++) { if(yellow % i == 0) { if((yellow/i) > i) { w = (yellow/i); h = i; } else { w = i; h = (yellow/i); } } if((2*w + 2*h + 4) == brown) { answer.push_back(w+2); answer.push_back(h+2); break; } } } return answer; }
'Algorithm' 카테고리의 다른 글
[Algorithm] DFS(깊이 우선 탐색), BFS(너비 우선 탐색) (0) 2020.08.31 [Algorithm] 프로그래머스 C++ : 체육복 (0) 2020.08.27 [Algorithm] 프로그래머스 C++ : 소수 찾기 (1) 2020.08.25 [Algorithm] 프로그래머스 C++ : 모의고사 (0) 2020.08.24 [Algorithm] 프로그래머스 C++ : H-Index (0) 2020.08.19