🌞Algorithm/🔥programmers

[programmers] 카펫

뿌야._. 2026. 5. 19. 10:36
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42842
 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


< 카펫 >

 

문제 풀이 (Java)

class Solution {
	public int[] solution(int brown, int yellow) {
		int[] answer = new int[2];

		int sum = brown + yellow;
		for (int i = 1; i <= sum; i++) {
			if (sum % i != 0 || i < sum / i) {
				continue;
			}
			if ((2 * i + 2 * (sum / i) - 4 == brown) && ((i - 2) * (sum / i - 2) == yellow)) {
				answer[0] = i;
				answer[1] = sum / i;
                		break;
			}
		}
		return answer;
	}
}

 

가로 x 세로 = 노란색 + 갈색이므로 먼저 전체 합을 구한다. 가로를 i로 두고 sum이 i로 나누어 떨어지고 가로가 더 길다면 (2 x 가로) + (2 x 세로) - 4 = 갈색, (가로 - 2) * (세로 - 2) = 노란색이 맞는지 확인한다. 맞다면 answer에 가로, 세로를 저장한 후 종료한다. 

 

최종 answer을 반환한다.



 

출처: 프로그래머스 코딩 테스트 연습, 
https://school.programmers.co.kr/learn/challenges

'🌞Algorithm > 🔥programmers' 카테고리의 다른 글

[programmers] 택배상자  (0) 2026.05.21
[programmers] 옹알이 (2)  (0) 2026.05.20
[programmers] 멀리 뛰기  (0) 2026.05.18
[programmers] 귤 고르기  (0) 2026.05.15
[programmers] String, Date문 - SQL 고득점 Kit  (0) 2022.02.06