Загружаем каталог…
Загружаем каталог…
🧺 공원 🔎 문제 설명 지민이는 다양한 크기의 정사각형 모양 돗자리를 가지고 공원에 소풍을 나왔습니다. 공원에는 이미 돗자리를 깔고 여유를 즐기는 사람들이 많아, 지민이가 깔 수 있는 가장 큰 돗자리가 어떤 것인지 확인하려 합니다. 예를 들어 지민이가 가지고 있는 돗자리의 한 변 길이가 5, 3, 2 세 종류이고, 사람들이 다음과 같이 앉아 있다면 지민이가 깔 수 있는 가장 큰 돗자리는 3 × 3 크기입니다. 지민이가 가진 돗자리들의 한 변의 길이가 담긴 정수 리스트 mats, 현재 공원의 자리 배치도를 의미하는 2차원 문자열 리스트 park가 주어질 때, 지민이가 깔 수 있는 가장 큰 돗자리의 한 변의 길이를 반환하도록 solution 함수를 완성해야 합니다. 아무런 돗자리도 깔 수 없는 경우 -1을 반환합니다. 공원에서 "-1" : 아무도 없는 빈자리 그 외 알파벳 : 사람이 있는 자리 를 의미합니다. 📌 제한사항 1 ≤ mats의 길이 ≤ 10 1 ≤ mats의 원소 ≤ 20 mats 는 중복된 원소를 가지지 않습니다. 1 ≤ park의 길이 ≤ 50 1 ≤ park[i]의 길이 ≤ 50 park[i][j] 의 원소는 문자열입니다. park[i][j] 에 돗자리를 깐 사람이 없다면 "-1" 사람이 있다면 알파벳 한 글자로 된 값을 가집니다. 💡 코드 풀이 핵심 로직 ⭐ size × size 크기의 영역이 모두 "-1"인지 확인하고 큰 돗자리부터 검사하기 1 mats를 큰 크기부터 확인할 수 있도록 내림차순 정렬한다. 2 현재 돗자리 크기를 size라고 한다. 3 공원의 모든 위치를 돗자리의 시작점으로 확인한다. 4 시작점에서 size × size 영역이 모두 "-1"인지 확인한다. 5 모두 빈자리라면 현재 size를 바로 반환한다. 6 모든 돗자리를 확인해도 놓을 수 없다면 -1을 반환한다. 정답 # mats : 지민이가 가진 돗자리들의 한 변의 길이들이 담긴 정수 리스트 # park : 현재 공원의 자리 배치도를 의미하는 2차원 문자열 리스트 def solution(mats, park): # 큰 돗자리부터 정렬 mats.sort(reverse=True) # 현재 공원의 자리 배치도의 길이(세로) h = len(park) # 현재 공원의 자리 배치도의 첫 번째 리스트의 길이(가로) w = len(park[0]) # size : mats에 저장된 값 (ex. 5, 3, 2) # size : 지민이가 가지고 있는 돗자리의 한 변의 길이가 ex. 5, 3, 2 세 종류임 for size in mats: # size x size 돗자리를 놓을 수 있는 시작 위치 확인 for i in range(h - size + 1): for j in range(w - size + 1): possible = True # size x size 영역이 전부 -1인지 확인 for r in range(i, i + size): for c in range(j, j + size): if park[r][c] != "-1": possible = False break if not possible: break if possible: return size return -1 ✏️ 내가 놓친 것 처음에는 2차원 리스트에서 어떤 방식으로 size x size 범위를 계산해야 하는지 바로 떠올릴 수 없었다. 이 문제에서 먼저 돗자리의 시작 위치 (i, j) 를 정한 다음, 다시 이중 반복문을 사용해 해당 위치부터 size x size 만큼의 영역을 확인해야 한다. size : 현재 확인하고 있는 돗자리의 한 변 길이 i, j : 돗자리를 놓기 시작할 위치 r, c : 돗자리 내부의 각 칸을 실제로 검색하는 위치 지민이가 갖고 있는 돗자리의 크기가 정해진 공원 크기를 벗어나지 않도록 시작위치의 범위를 제한하는 것도 중요하다. range(h - size + 1) range(w - size + 1) 다음에 2차원 배열에서 일정 크기의 정사각형 영역을 검사하는 문제가 나온다면 ** 위치를 정하는 이중 반복문 + 그 영역의 내부를 확인하는 이중 반복문**을 확인해야 겠다.
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
프로그래머스 PCCE 기출문제 10번 공원. 🧺 공원 🔎 문제 설명 지민이는 다양한 크기의 정사각형 모양 돗자리를 가지고 공원에 소풍을 나왔습니다. 공원에는 이미 돗자리를 깔고 여유를 즐기는 사람들이 많아, 지민이가 깔 수 있는 가장 큰 돗자리가 어떤 것인지 확인하려 합니다. 예를 들어 지민이가 가지고 있는 돗자리의 한 변 길이가 5, 3, 2 세 종류이고, 사람들이 다음과 같이 앉아 있다면 지민이가 깔 수 있는 가장 큰 돗자리는 3 × 3 크기입니다. 지민이가 가진 돗자리들의 한 변의 길이가 담긴 정수 리스트 mats, 현재 공원의 자리 배치도를 의미하는 2차원 문자열 리스트 park가 주어질 때, 지민이가 깔 수 있는 가장 큰 돗자리의 한 변의 길이를 반환하도록 solution 함수를 완성해야…
Открыть источник