Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 내배캠 프로젝트
- JavaScript
- 리액트 공식문서
- typeScript
- useEffect
- 파이썬 반복문
- 파이썬 for in
- 한글 공부 사이트
- 리액트 공식 문서
- 파이썬 slice
- 타입스크립트
- 리액트 훅
- 파이썬 for
- 리액트
- tanstack query
- 내일배움캠프
- 자바스크립트
- 내일배움캠프 최종 프로젝트
- 내일배움캠프 프로젝트
- useState
- 코딩테스트
- 파이썬 replace
- REACT
- Next 팀 프로젝트
- React Hooks
- 리액트 프로젝트
- 타입스크립트 리액트
- 파이썬 딕셔너리
- 파이썬 enumerate
- 프로그래머스
Archives
- Today
- Total
sohyeon kim
[Python] 프로그래머스 : [PCCE 기출문제] 10번 / 공원 340198, sort, set 본문
728x90
📝 문제
지민이는 다양한 크기의 정사각형 모양 돗자리를 가지고 공원에 소풍을 나왔습니다. 공원에는 이미 돗자리를 깔고 여가를 즐기는 사람들이 많아 지민이가 깔 수 있는 가장 큰 돗자리가 어떤 건지 확인하려 합니다. 예를 들어 지민이가 가지고 있는 돗자리의 한 변 길이가 5, 3, 2 세 종류이고, 사람들이 다음과 같이 앉아 있다면 지민이가 깔 수 있는 가장 큰 돗자리는 3x3 크기입니다.
지민이가 가진 돗자리들의 한 변의 길이들이 담긴 정수 리스트 mats, 현재 공원의 자리 배치도를 의미하는 2차원 문자열 리스트 park가 주어질 때 지민이가 깔 수 있는 가장 큰 돗자리의 한 변 길이를 return 하도록 solution 함수를 완성해 주세요. 아무런 돗자리도 깔 수 없는 경우 -1을 return합니다.
🫠 나의 풀이
def solution(mats, park):
rows = len(park)
cols = len(park[0])
max_size = -1
mats.sort()
for m in range(len(mats) - 1, -1, -1): # 큰 매트부터 역순으로 조회
can_place = False
for i in range(rows - mats[m] + 1): # 매트 배치 가능한 마지막 행 좌표
for j in range(cols - mats[m] + 1): # 매트 배치 가능한 마지막 열 좌표
all_minus_one = True
for x in range(i, i + mats[m]):
for y in range(j, j + mats[m]):
if park[x][y] != "-1":
all_minus_one = False
break
if not all_minus_one:
break
if all_minus_one: # 모두 빈 공간 "-1" 이라면 배치 가능하다 판단하고 루프 탈출
can_place = True
break
if can_place: # 배치 가능하면 탈출
break
if can_place: # 배 가능하면 사이즈 저장
max_size = mats[m]
break
return max_size
🧞♂️ 다른 사람의 풀이
def solution(mats, park):
mats = sorted(mats, reverse = True)
M, N = len(park), len(park[0])
for l in mats:
startIdxSet = set((i,j) for i in range(M-l+1) for j in range(N-l+1))
for a, b in startIdxSet:
ret = set()
for i in range(a,a+l):
for j in range(b,b+l):
ret.add(park[i][j])
if ret == {'-1'}:
return l
return -1
🔗 https://school.programmers.co.kr/learn/courses/30/lessons/340198
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
728x90
반응형
'Coding Test' 카테고리의 다른 글
[Python] 백준 : 골드바흐 파티션 17103, 소수 구하기, 에라토스테네스의 체 (0) | 2024.09.27 |
---|---|
[Python] 백준 : 소수 구하기 1929, for-else문 (0) | 2024.09.26 |
[Python] 프로그래머스 : 동영상 재생기 340213, replace, zfill (0) | 2024.09.24 |
[Python] 백준 : 창문 닫기 13909, math.sqrt (0) | 2024.09.20 |
[Python] 프로그래머스 : 달리기 경주 178871, dic, enumerate, 시간복잡도 (0) | 2024.09.13 |