728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42842
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(int brown, int yellow) {
vector<int> answer;
int sum = brown + yellow;
int i = 3;
int j = 0;
for ( i = 3; i <= sum; i++) {//3이상의 크기부터 돌리기
j = sum / i;
if (i <= j) {
if (yellow == (i-2) * (j-2)) { //가로 세로 를 -2 정도해준것의 곱이 yellow와 같아야 가운데 있는거임으로
answer.push_back(j);
answer.push_back(i);
break;
}
}
}
return answer;
}
int main(void) {
vector<int> a;
//a= solution(10, 2);
// a= solution(8, 1);
a= solution(24, 24);
cout << a[0]<<" "<< a[1] << endl;
return 0;
}
소스 길이 보고도 응? 이러실것 같은데 여기서는 얼마나 조건을 잘 판단 했는지 인것같아요
완전 탐색 부분의 마지막 문제가 어려울줄 알아서 더 긴장했는데
그냥 가로 세로를 각 -2 한것의 곱이 yellow 부분이랑 같은경우를 출력하는 문제라고
생각하시면 이해가 빠릅니다. 물론 이게 출력시 y,x를 반대로 저장하고 출력하는것도
잘체크 해주셔야해요.
너무 간단한 풀이라 더이상의 해석은 줄이겠습니다. 소스 가 해석입니다.
제가 첨에 실수 한게
i-2 * j-2 라고 그냥 해버려서 첨에 값이 이상하게 나왔었는데
(i-2)* (j-2) 로해주거나
ci = i-2;
cj= j-2;
mulIJ= ci* cj;
로해서mulIJ 로 해주셔야 좀더 정확하고 틀리는 경우가 줄어들것같아요 주의해주세요
728x90
반응형
'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글
프로그래머스 다리를 지나는 트럭 (0) | 2020.07.25 |
---|---|
15685 드래곤 커브 (0) | 2020.07.25 |
15683 감시 (0) | 2020.07.23 |
프로그래머스 숫자 야구 (0) | 2020.07.22 |
14503 로봇 청소기 (0) | 2020.07.22 |
댓글