[프로그래머스] 카펫



Programmers - [완전탐색] 카펫




사용 언어 - C++

소요 시간 - 35분

정답 여부 - O




문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42842



문제 요약

  1. 카펫의 테두리 부분인 갈색의 개수 brown이 주어짐
  2. 카펫의 가운데 부분인 노란색의 개수 yellow가 주어짐
  3. 이 때 카펫의 가로 세로 길이를 구해서 return

ex)
brown = 10
yellow = 2

❤️❤️❤️❤️
❤️⭐⭐❤️
❤️❤️❤️❤️

brown = 8
yellow = 1

❤️❤️❤️
❤️⭐❤️
❤️❤️❤️

brown = 24
yellow = 24

❤️❤️❤️❤️❤️❤️❤️❤️
❤️⭐⭐⭐⭐⭐⭐❤️
❤️⭐⭐⭐⭐⭐⭐❤️
❤️⭐⭐⭐⭐⭐⭐❤️
❤️⭐⭐⭐⭐⭐⭐❤️
❤️❤️❤️❤️❤️❤️❤️❤️




최종 코드

#include <string>
#include <vector>
#include <cmath>

using namespace std;

vector<int> solution(int brown, int yellow) {
    vector<int> answer;
    
    int carpet = brown + yellow;
    
    for(int h = 3; h <= sqrt(carpet); h++)
    {
        if(carpet % h == 0)
        {
            int w = carpet / h;
            
            if((w - 2) * (h - 2) == yellow)
            {
                answer.push_back(w);
                answer.push_back(h);
                break;
            }
        }
    }
    
    return answer;
}




트러블 슈팅




문제 풀이 후 소감

  • 다른 걸 하느라 바쁘기도 했고 팔꿈치 수술도 해서 일주일간 코테를 손도 못댔다. 그래서 실력이 조금 떨어진 것 같았다(별 거 없는 실력이긴 하지만..ㅎㅎ)
  • 내일부터 프로젝트에 들어가기 때문에 일주일에 2~3문제는 풀 수 있도록 해야겠다. 내 루틴도 루틴이지만 내 블로그를 읽는게 루틴이 된 사람이 있는 것 같아서 조금 더 열심히 해봐야겠다..ㅎㅎ