https://programmers.co.kr/learn/courses/30/lessons/42842?language=java
코딩테스트 연습 - 카펫
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 ��
programmers.co.kr
<내 풀이>
yellow의 갯수의 약수 짝을 구합니다. yellow 갯수과 brown 갯수를 더한수가 yellow의 약수짝에 각각 2를 더한 값이 약수가 되는지 확인 합니다.
import java.util.HashMap;
public class l6 {
public static int[] solution(int brown, int yellow) {
int[] answer = new int[2];
HashMap<Integer, Integer> hm = new HashMap<>();
int i = 1;
while (i * i <= yellow) {
if (yellow % i == 0) {
hm.put(i, yellow / i);
}
i++;
}
for (Integer j : hm.keySet()) {
if ((j + 2) * (hm.get(j) + 2) == (brown + yellow)) {
answer[0] = hm.get(j) + 2;
answer[1] = j + 2;
}
}
return answer;
}
public static void main(String[] args) {
int brown=24;
int yellow=24;
for (int i : solution(brown, yellow)) {
System.out.println(i);
}
}
}
'컴퓨터 프로그래밍 > 알고리즘' 카테고리의 다른 글
프로그래머스-탑 (0) | 2020.06.03 |
---|---|
프로그래머스-멀리뛰기 (0) | 2020.06.03 |
프로그래머스-최솟값 만들기 (0) | 2020.06.03 |
프로그래머스-최댓값과 최솟값 (0) | 2020.06.02 |
프로그래머스-N개의 최소공배수 (0) | 2020.06.02 |