https://school.programmers.co.kr/learn/courses/30/lessons/42842
풀이
class Solution {
public int[] solution(int brown, int yellow) {
int x = 0;
while(true){
if((x - 2) *(-x+brown/2) == yellow){
break;
}else{
x++;
}
}
int y = 2-x + brown/2;
int[] answer;
if(x>y){
answer = new int[]{x,y};
}else{
answer = new int[]{y,x};
}
return answer;
}
}
연립방정식과 동일한 문제이다.
x행 y 열이면
브라운은 2x+2y-4 = brown개
옐로우는 (x-2)*(y-2) = yellow개
즉, 여기서 브라운에 관한 식을 y에 대해 정리한 뒤에 연립방정식에서 x를 하나씩 증가시키는 방향으로 풀면 된다.
최종적으로 행이 열보다 커야하므로 if문을 통해 배열을 확정해준다.
'문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 가장 비싼 상품 구하기(SQL) (0) | 2024.10.24 |
---|---|
[프로그래머스] 단어 변환(JAVA) (0) | 2024.05.06 |
[프로그래머스] 네트워크(JAVA) (0) | 2024.05.04 |
[프로그래머스] 게임 맵 최단거리(JAVA) (0) | 2024.05.04 |
[프로그래머스] 모의고사(JAVA) (0) | 2024.04.29 |