연습장
22. 바탕화면 정리 본문
이 문제를 보고 언어능력이 부족해지는 느낌이 들었다.
그림으로 보면 이렇게 쉽게 이해가 되는데..
. 은 빈곳 # 은 지워야할 문서의 위치이다.
간단하게 생각하면 좌표 문제로 # 이 있는 좌표중 가장 작은곳과 가장 큰곳을 찾으면 될거같다.
1. 리스트에서 # 이 가장 먼저 나오는 원소의 위치
2. 각 원소 (. 과 # 중에서 ) 에서 # 이 가장 먼저 나오는 원소의 위치
3. 리스트에서 # 이 가장 마지막에 나오는 원소의 위치
4. 각 원소 (. 과 # 중에서 ) 에서 # 이 가장 마지막에 나오는 원소의 위치
1번을 예로 들면
[".#...", "..#..", "...#."]
리스트의 원소에서 # 은 0 1 2 에서 나오고
원소 내에서 #의 위치가 각각 1 2 3 에서 나온다.
(0,1) , (2+1,3+1) 의 영역을 드래그하면 모두 포함된다.
0,1,3,4
def solution(wallpaper):
answer = []
row = []
col = []
for i in range(len(wallpaper)):
if '#' in wallpaper[i]:
row.append(i)
col = col + [j for j, value in enumerate(wallpaper[i]) if value == '#']
print(row)
print(col)
return answer
이후 각각 row 와 col 의 최소 최대를 찾으면 된다.
def solution(wallpaper):
answer = []
row = []
col = []
for i in range(len(wallpaper)):
if '#' in wallpaper[i]:
row.append(i)
col = col + [j for j, value in enumerate(wallpaper[i]) if value == '#']
row.sort()
col.sort()
answer.append(row[0])
answer.append(col[0])
answer.append(row[-1]+1)
answer.append(col[-1]+1)
return answer
'프로그래머스 > 1단계' 카테고리의 다른 글
24. 달리기 경주 (0) | 2024.01.22 |
---|---|
23. 개인정보 수집 유효기간 (1) | 2024.01.22 |
21. 데이터 분석 (0) | 2024.01.20 |
20. 성격 유형 검사하기 (0) | 2024.01.20 |
19. 신규 아이디 추천 (0) | 2024.01.19 |