Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 프로그래머스 #NULL 처리하기
- 프로그래머스 #네트워크 #c++ #코딩테스트 #코테 #코테준비 #dfs
- 카카오 코테
- 그리디알고리즘 #그리디 #백준 #우선순위큐 #최소힙 #최대힙 #알고리즘 #코딩테스트 #python
- 프로그래머스 #python #2021카카오 #카카오코테 #카카오인턴쉽
- 동
- 백준 #백준알고리즘 #알고리즘 #코딩테스트 #코딩테스트준비 #코테준비 #백준2110 #python #문제풀이
- 카카오 #프로그래머스 #python #코딩테스트 #오픈채팅방
- 백준 #백준2217 #백준로프 #python
- 프로그래머스 #python #코딩테스트 #코테공부 #알고리즘 #dict
- 프로그래머스 #sql #mysql #코딩테스트
- 프로그래머스 #c++ #코딩테스트
- 백준 #이거다시풀기
Archives
- Today
- Total
say repository
[프로그래머스] 카펫 c++ 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/42842
출처 : 프로그래머스
코딩테스트 연습 - 카펫
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과
programmers.co.kr
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int brown, int yellow) {
vector<int> answer;
int carpet = brown + yellow;
//carpet의 약수 구하기 (n가로, m세로)
for (int m=3; m<carpet/2; m++){
if (carpet % m == 0){
int n = carpet / m;
//노란색 개수와 맞는지 확인
if((m-2)*(n-2) == yellow){
answer.push_back(n);
answer.push_back(m);
break;
}
}
}
return answer;
}
그림을 그리며 생각해보면 규칙을 찾을 수 있다.
테두리가 갈색이어야하고 가운데에 노란색이 있어야하니까 세로의 최소 길이는 3이다.
3이상부터 가로가 세로보다 같거나 길어야하니까 이 조건을 주의해서 약수를 찾는다.
찾은 약수 쌍 중, 만들 수 있는 노란색의 개수가 네오가 본 노란색의 개수와 같다면 answer에 가로, 세로 추가하고 break
아니면 다른 약수 찾는다.
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 네트워크 c++ (0) | 2022.03.18 |
---|---|
[프로그래머스] 타겟 넘버 c++ (0) | 2022.03.18 |
[프로그래머스] 소수 찾기 c++ (0) | 2022.03.17 |
[프로그래머스] 모의고사 c++ (0) | 2022.03.17 |
[프로그래머스] 우유와 요거트가 담긴 장바구니 mysql (*) (0) | 2022.02.11 |