프로그래머스 - 카펫

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. 모든 격자의 수의 합은 brown + red, 카펫의 가로, 세로 길이는 최소 3이상이다.

2. 반복문을 돌리며 width에 sum을 height로 나눈 몫을 대입한다.

3. sum이 height로 나누어 떨어지고 (width -2)*(height-2) 즉 테두리를 1줄을 제외한 부분의 값이 yellow와 같으면 answer에 width와 height를 담고 break한다.

4. answer 리턴

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int brown, int yellow) {
    vector<int> answer;
    int sum = brown + yellow;
    
    for(int height = 3;;height++){
        int width = sum / height;
        if(!(sum % height) && (width - 2)*(height - 2) == yellow) {
            answer.push_back(width);
            answer.push_back(height);
            break;
        }
    }
    
    return answer;
}

 

'프로그래머스 > 2레벨' 카테고리의 다른 글

구명보트/C++  (1) 2023.01.10
영어 끝말잇기/C++  (0) 2023.01.10
짝지어 제거하기/C++  (0) 2023.01.06
다음 큰 숫자/C++  (0) 2023.01.06
최솟값 만들기/C++  (0) 2023.01.06

+ Recent posts