[PCCE 기출문제] 10번 / 공원 - JAVA
2025. 3. 2. 15:56ㆍ백준 및 프로그래머스/프로그래머스 LV 1
문제 설명


제한사항

입출력 예


문제 설명:
1.처음 문제에 접근했을 때는 그래프 탐색 문제라 생각했습니다.
2.문제를 보니 단순 구현 + 완전 탐색 문제였습니다.
3.-1이 빈칸이며 기존의 깔린 돗자리를 제외하고 현재 남은 구역 중에 제일 큰 돗자리를 펼 수 있는 공간을 찾는 문제였습니다.
4.완전 탐색으로 돗자리를 다 활용하고 그중에서 제일 큰 돗자리를 저장하고 출력하는 방식으로 접근했습니다.
5.필 수 있는 돗자리가 없다면 -1을 출력해줍니다.
전체 코드
import java.util.*;
class Solution {
public int solution(int[] mats, String[][] park) {
int answer = -1;
//어떤 돗자리가 젤 큰지 저장하기 위함 list
List<Integer> list = new ArrayList<>();
//공원 크기
int n = park.length;
int m = park[0].length;
for(int i = 0 ; i<n ; i++){
for(int j = 0; j<m; j++){
//돗자리를 필 수 있다면 로직 시작
if(park[i][j].equals("-1")){
// mats에 있는 모든 돗자리를 탐색
//5,3,2 이면 5*5, 3*3 ,2*2가 가능한 지 탐색
for(int k = 0; k<mats.length; k++){
int num = mats[k];
int count = 0 ;
for(int x = i; x<i+num; x++){
for(int y = j; y<j+num; y++){
if(x < 0 || x >= n || y < 0|| y >= m){
continue;
}
if(park[x][y].equals("-1")){
count++;
}
}
}
if(count == num*num){
list.add(num);
}
}
}
}
}
//가능한 돗자리가 없다면 -1
if(list.size() == 0){
answer = -1;
}else{
//가능한 돗자리가 있다면 그중에 젤 큰 사이즈 저장
Collections.sort(list);
answer = list.get(list.size()-1);
}
return answer;
}
}'백준 및 프로그래머스 > 프로그래머스 LV 1' 카테고리의 다른 글
| 2022 KAKAO BLIND RECRUITMENT - 신고 결과 받기 - JAVA (1) | 2025.03.03 |
|---|---|
| [PCCP 기출문제] 1번 / 붕대 감기 - JAVA (0) | 2025.03.02 |
| 2025 프로그래머스 코드챌린지 1차 예선 - 유연근무제 -JAVA (1) | 2025.02.27 |
| 2023 KAKAO BLIND RECRUITMENT - 개인정보 수집 유효기간 - JAVA (0) | 2025.02.26 |
| 2021 KAKAO BLIND RECRUITMENT신규 아이디 추천 - JAVA (0) | 2025.02.25 |