지우너
[프로그래머스] 카펫 C++ 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이 및 코드
갈색 테두리는 1줄이라고 문제에 나와 있으므로 노란색의 가로 세로에 2를 더해주면 전체 가로 세로 값이 나온다.
가로*세로= 전체 타일의 갯수, 전체 타일의 갯수-노란색 타일의 갯수=갈색 타일의 갯수
노란색 타일의 가로 세로를 완전탐색을 이용해 구하고, 갈색 타일의 갯수와 일치하는지 보면 된다.
#include <string>
#include <cmath>
#include <vector>
using namespace std;
vector<int> solution(int brown, int yellow) {
vector<int> answer;
// 1. 노란색의 가로 세로 완탐으로 구하기
for(int i=1; i<=sqrt(yellow); i++){
if(yellow%i==0){
int yWight = yellow/i;
int yHeight = i;
// 2. 갈색의 가로세로는 노란색의 +2
int width = yWight + 2;
int height = yHeight + 2;
// 3. [break] 전체에서 노란 타일을 빼면 갈색 타일의 갯수가 나와야 함.
if((width*height -yellow)==brown){
answer.push_back(width);
answer.push_back(height);
break;
}
}
}
return answer;
}
'Problem Solving' 카테고리의 다른 글
[프로그래머스] 피로도 C++ (0) | 2025.03.09 |
---|---|
[프로그래머스] k번째수 C++ (0) | 2025.02.21 |
[프로그래머스] 모의고사 C++ (0) | 2025.02.19 |
[프로그래머스] 최소 직사각형 (0) | 2025.02.19 |
[프로그래머스 SQL 고득점 Kit] GROUP BY (0) | 2025.01.17 |