-
[프로그래머스/JAVA] 카펫Algorithm 2024. 9. 18. 22:08
https://school.programmers.co.kr/learn/courses/30/lessons/42842
- 정답코드
import java.util.*; class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; int size = brown + yellow; // 전체 넓이 12 // 약수값 저장할 배열 List<Integer> as = new ArrayList<>(); for(int i = 1; i <= size; i++) { if(size % i == 0) { // as[1,2,3,4,6,12] // as[1,3,9] as.add(i); } } // 약수 쌍 중에서 brown과 yellow 조건을 만족하는 지 확인 for (int i = 0; i < as.size(); i++) { int height = as.get(i); int width = size / height; if(width >= height) { // 테두리 = (4+3) * 2 - 4(네귀퉁이) int border = (width + height) * 2 - 4; // 안 = 전체 넓이 - 테두리 int inner = size - border; if(border == brown && inner == yellow) { answer[0] = width; answer[1] = height; break; } } } return answer; } }
++ answer 부분은 아래처럼 두 방식으로 나타낼 수 있음!
m1)
int[] answer = new int[2]; .... answer[0] = width; answer[1] = height; break; ... } } } return answer;
m2)
return new int[]{width, height}; } } } } return new int[0]; } }
'Algorithm' 카테고리의 다른 글
[알고리즘/JAVA] 문법 정리 (0) 2024.09.18 [프로그래머스/JAVA] 모음사전 (0) 2024.09.18 [프로그래머스/JAVA] 소수찾기 (0) 2024.09.18 [프로그래머스/JAVA] 전력망을 둘로 나누기 (0) 2024.09.18 [백준/JAVA] 2606번: 바이러스 (0) 2024.07.19