깃허브:
https://github.com/MSIQOC/Programmers/blob/main/%EC%B9%B4%ED%8E%AB.java
https://programmers.co.kr/learn/courses/30/lessons/42842
brown과 yellow로 세울 수 있는 방정식으로는
1. 두개의 가로 + 두개의 세로 - 네개의 모서리 = brown
2. (가로-2)*(세로-2) = yellow
라는 것이다.
"for x는 1부터 7-1=6까지" 는 맨 처음 입출력 예인 brown 10, yellow 2를 두고 쓴 말인데,
2x + 2y - 4 = 10이기 때문에 x + y = 7이라는 식이 만들어지고 for문을 사용해서 x는 1부터 6까지 돌리고 7-x를 이용해 y를 구한 다음에 (x-2)(y-2) = 2라는 조건에 맞는지 검사하면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
int bcal = (brown+4)/2;
boolean check = false;
for(int x=1; x<bcal; ++x){
int y = bcal - x;
if((x-2)*(y-2) == yellow){
answer[0] = (x >= y) ? x : y;
answer[1] = (x >= y) ? y : x;
}
}
return answer;
}
}
|
cs |
'프로그래머스 풀이' 카테고리의 다른 글
프로그래머스 3단계 - 가장 먼 노드 (Python, Java) (0) | 2021.08.31 |
---|---|
프로그래머스 2단계 - 피보나치 수(Python) (0) | 2021.08.09 |
프로그래머스 1단계 - K번째 수(Python) (0) | 2021.08.01 |
프로그래머스 3단계 - 이중우선순위큐(Python, Java) (0) | 2021.07.30 |
프로그래머스 2단계 - 다리를 지나가는 트럭(Python) (0) | 2021.07.30 |