https://programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[문제 풀이]
완전 탐색을 이용하여 문제를 풀었습니다.
red로 이루어진 직사각형을 구하기 위해 1 ~ red/2 까지 반복문을 이용해서 구해주었습니다. 그 후
(2 * i) + ((red / i + 2) * 2) == brown 의 조건을 통과하면 i + 2, red / i + 2 을 넣어주었습니다.
[C++]
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int brown, int red) {
vector<int> answer;
if (red == 1) {
answer.push_back(3);
answer.push_back(3);
return answer;
}
for (int i = 1; i <= red / 2; i++) {
if (red % i == 0) {
if ((2 * i) + ((red / i + 2) * 2) == brown) {
answer.push_back((i + 2 > red / i + 2) ? i + 2 : red / i + 2);
answer.push_back((i + 2 < red / i + 2) ? i + 2 : red / i + 2);
break;
}
}
}
return answer;
}
[JAVA]
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
if (yellow == 1) {
answer[0] = 3;
answer[1] = 3;
return answer;
}
for (int i = 1; i <= yellow / 2; i++) {
if (yellow % i == 0) {
if ((2 * i) + ((yellow / i + 2) * 2) == brown) {
answer[0] = (i + 2 > yellow / i + 2) ? i + 2 : yellow / i + 2;
answer[1] = (i + 2 < yellow / i + 2) ? i + 2 : yellow / i + 2;
break;
}
}
}
return answer;
}
}
'algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스_입국심사(C++) (0) | 2020.10.21 |
---|---|
프로그래머스_문자열 압축(C++) (0) | 2020.06.04 |
프로그래머스_등굣길(C++, JAVA) (0) | 2020.04.26 |
프로그래머스_숫자 야구(C++) (0) | 2020.04.26 |
프로그래머스_N으로 표현(C++) (0) | 2020.04.20 |