반응형
https://school.programmers.co.kr/learn/courses/30/lessons/340198
전수조사 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
정답변수 answer 선언 후 -1로 초기화합니다.
📔 풀이과정
park에 대해 2차원 for loop를 수행하면서 다음을 진행합니다.1. 현재칸이 -1이 아니라면 다른 돗자리가 깔려 있으므로 continue합니다.
2. mats에 대해 for loop를 수행하며 다음을 진행합니다. 2-1. is_valid flag를 선언해 다시 현재행 + 돗자리 세로 변, 현재열 + 돗자리 가로 변만큼 2차원 영역에 대해 돗자리를 깔 수 있는지 확인해줍니다. 영역을 넘어가거나 해당 영역에 이미 다른 돗자리가 깔려있으면 is_valid를 False로 갱신하는 식으로 확인합니다. 2-2. is_valid가 True라면 깔 수 있는 돗자리의 최댓값을 answer와 비교해 저장합니다.
📔 정답 출력 | 반환
answer를 반환합니다.
📕 Code
📔 Python3
def solution(mats, park):
answer = -1
for r in range(len(park)):
for c in range(len(park[0])):
if park[r][c] != "-1":
continue
for mat in mats:
is_valid = True
for i in range(r, r + mat):
for j in range(c, c + mat):
if i >= len(park) or j >= len(park[0]):
is_valid = False
continue
if park[i][j] != "-1":
is_valid = False
if is_valid == True:
answer = max(answer, mat)
return answer
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Brute Force' 카테고리의 다른 글
(Java, Python3) - 프로그래머스(연습문제): 크기가 작은 부분문자열 (0) | 2024.11.19 |
---|---|
(Python3) - 프로그래머스(연습문제): 바탕화면 정리 (0) | 2024.11.10 |
(Python3) - 프로그래머스(코딩테스트 입문) : 문자열 밀기 (0) | 2024.11.03 |
(Python3) - 프로그래머스(코딩테스트 입문) : 연속된 수의 합 (1) | 2024.11.03 |
(Python3) - 프로그래머스(코딩테스트 입문) : k의 개수 (0) | 2024.10.31 |