반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/161990
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🐍파이썬
def solution(wallpaper): lux, luy, rdx, rdy = 50, 50, 0, 0 for x in range(len(wallpaper)): for y in range(len(wallpaper[x])): if wallpaper[x][y] == "#": lux = min(lux, x) #매번 가장 작은 시작x점 갱신 luy = min(luy, y) #매번 가장 작은 시작y점 갱신 rdx = max(rdx, x+1) #드래그 하려면 (x+1, y+1)까지 가야 하므로 x+1갱신 rdy = max(rdy, y+1) #가장 큰 y+1 갱신 return [lux, luy, rdx, rdy]
#..
.#.
..#
파일이 이렇게 배열되어 있다면 단순히 가장 상단에 있는 파일의 좌표와 가장 하단에 있는 파일의 좌표를 출력하면 되지만,
..#..
.#...
....#
...#.
위 같은 파일배열의 경우, 가장 상단의 파일과 가장 하단의 파일의 좌표만 확인하면 범위 안에 들어오지 않는 파일이 있을 수 있다. 따라서 모든 좌표의 파일을 범위 안에 넣기 위해서 모든 파일의 좌표 중 가장 작은 x, y값을 시작 좌표로 삼고 end 좌표 역시 모든 파일의 좌표 중 가장 큰 x, y값을 사용해야 한다.
이중for문을 통해 파일의 위치를 찾고 매번 start 좌표값과 end 좌표값을 업데이트해주는 방법으로 답을 구했다.
다른 풀이 방법
def solution(wall): a, b = [], [] for i in range(len(wall)): for j in range(len(wall[i])): if wall[i][j] == "#": a.append(i) b.append(j) return [min(a), min(b), max(a) + 1, max(b) + 1]
반응형
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[프로그래머스|파이썬] [1차] 프렌즈4블록 (2018 KAKAO BLIND RECRUITMENT/lv.2) (0) | 2023.05.24 |
---|---|
[프로그래머스|파이썬] 모음사전 (완전탐색/lv.2) (0) | 2023.05.24 |
[프로그래머스|파이썬] 방문 길이 (Summer/Winter Coding(~2018)/lv.2) (0) | 2023.05.23 |
[프로그래머스|파이썬] [3차] n진수 게임 (2018 KAKAO BLIND RECRUITMENT/lv.2) (0) | 2023.05.22 |
[프로그래머스|파이썬] k진수에서 소수 개수 구하기 (2022 KAKAO BLIND RECRUITMENT/lv.2) (0) | 2023.05.22 |
[프로그래머스|파이썬] 뒤에 있는 큰 수 찾기 (연습문제/lv.2) (0) | 2023.05.22 |