1. 문제
[완전탐색]
https://school.programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 해설
<bash />
class Solution {
public int[] solution(int brown, int yellow) {
// 가로 길이를 3부터 brown의 값까지 반복
for (int width = 3; width <= brown; width++) {
// 세로 길이를 가로 길이부터 시작하여 반복
for (int height = 3; height <= width; height++) {
// 테두리의 카펫 개수 계산
int boundary = (width + height - 2) * 2;
// 중앙 영역의 카펫 개수 계산
int center = width * height - boundary;
// 주어진 brown과 yellow 값과 일치하는 경우
if (brown == boundary && yellow == center) {
// 가로와 세로 길이를 배열로 반환
return new int[]{width, height};
}
}
return null;
}
}
- 여러 방향으로 생각하기 (width, height 기준으로 문제 풀이)
처음에 brown, yellow 기준으로 width, height를 구하려고 하여 복잡해졌다.
반응형
'study > 코딩테스트' 카테고리의 다른 글
[프로그래머스][Lv3][Java] 여행경로 (0) | 2024.01.25 |
---|---|
[프로그래머스][Lv1][Java] 모의고사 (1) | 2023.12.29 |
[프로그래머스][Lv2][Java] H-Index (0) | 2023.12.28 |
[프로그래머스][Lv1][Java] 두 개 뽑아서 더하기 (0) | 2023.12.28 |
[프로그래머스][Lv1][Java] K번째 수 (0) | 2023.12.28 |