🖥️ CS/SW Expert 외의 Algorithms

(프로그래머스 C++) Lv2 카펫

한국의 메타몽 2020. 10. 14. 16:25

링크 : programmers.co.kr/learn/courses/30/lessons/42842

 

코딩테스트 연습 - 카펫

Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 ��

programmers.co.kr

분류 : 완전탐색

 

혹시 이 문제를 풀었는데 테스트케이스 4번, 6번, 7번을 틀린 사람은 아래의 예시를 테스트 케이스로 추가해보자.


입력값 : Brown 50, Yellow 20 

출력값 : [24, 3]


#include <string>
#include <vector>

using namespace std;

vector<int> solution(int brown, int yellow) {
    vector<int> answer;
    int sum = brown + yellow;
    for (int i = 1; i <= sum; i++) {
        int y = sum / i;
        int x = i;
        if (y * x == sum && y >= x) { // 조건 
            answer.clear();
            answer.push_back(y);
            answer.push_back(x);
        }
    }
    return answer;
}

조건에 해당하는 부분은 '옐로우'의 타일 갯수가 입력값과 동일한지를 묻는 부분이다.

해당 부분을 간과한 덕분에 4번, 6번, 7번 케이스에서 오답이 나와버렸다.