https://programmers.co.kr/learn/courses/30/lessons/42842?language=java
풀이
카펫 격자의 수는 다음과 같다.
- (노란색) = (가로-2)*(세로-2)
- (갈색) = (가로*세로)-(노란색)
1. 노란색 격자의 수(yellow)의 약수의 중심까지 반복문을 돌려준다. (즉, 해당 숫자의 √N까지 확인)
2. i가 yellow의 약수라면, 가로에 i+2, 세로에 (yellow/i) +2을 저장한다. (가로 >= 세로)
3. brown + yellow = 가로 * 세로 를 만족할 때 answer를 반환한다.
코드
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
for(int i=1;i*i<=yellow;i++){
if(yellow%i==0){
int height=i+2;
int width=(yellow/i)+2;
if(brown == height*width-yellow){
answer[0]=width;
answer[1]=height;
break;
}
}
}
return answer;
}
}
'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 Lv.2 : 구명보트 (0) | 2022.03.14 |
---|---|
[Java] 프로그래머스 Lv.2 : 소수 찾기 (0) | 2022.03.13 |
[Java] 프로그래머스 Lv.2 : H-Index (0) | 2022.03.13 |
[Java] 프로그래머스 Lv.2 : 더 맵게 (0) | 2022.03.13 |
[Java] 프로그래머스 Lv.2 : 주식가격 (0) | 2022.03.11 |