반응형
🗓️ 문제 설명
- 각 칸이 정사각형인 격자판인 바탕화면을 정리하고자 합니다.
- 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다.
- 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다.
- 빈칸은 ".", 파일이 있는 칸은 "#"의 값을 가집니다.
- 드래그를 하면 파일들을 선택할 수 있고, 선택된 파일들을 삭제할 수 있습니다.
- 최소한의 이동거리를 갖는 한 번의 드래그로 모든 파일을 선택해서 한 번에 지우려고 하며 드래그로 파일들을 선택하는 방법은 다음과 같습니다.
- 드래그는 바탕화면의 격자점 S(lux, luy)를 마우스 왼쪽 버튼으로 클릭한 상태로 격자점 E(rdx, rdy)로 이동한 뒤 마우스 왼쪽 버튼을 떼는 행동입니다.
- 점 S(lux, luy)에서 점 E(rdx, rdy)로 드래그를 할 때, '드래그 한 거리'는 | rdx - lux | + | rdy - luy |로 정의합니다.
- 점 S에서 점 E로 드래그를 하면 바탕화면에서 두 격자점을 각각 왼쪽 위, 오른쪽 아래로 하는 직사각형 내부에 있는 모든 파일이 선택됩니다.
- 컴퓨터 바탕화면의 상태를 나타내는 문자열 배열 wallpaper가 매개변수로 주어질 때 바탕화면의 파일들을 한 번에 삭제하기 위해 최소한의 이동거리를 갖는 드래그의 시작점과 끝점을 담은 정수 배열을 반환하세요.
- 드래그의 시작점이 (lux, luy), 끝점이 (rdx, rdy)라면 정수 배열 [lux, luy, rdx, rdy]를 반환하면 됩니다.
- 제한 사항
- 1 ≤ wallpaper의 길이 ≤ 50
- 1 ≤ wallpaper[i]의 길이 ≤ 50
- wallpaper의 모든 원소의 길이는 동일
- wallpaper[i][j]는 바탕화면에서 i+1행, j+1열에 해당하는 칸의 상태를 나타냄
- wallpaper[i][j]는 '#' 또는 '.'의 값
- 바탕화면에는 적어도 하나의 파일이 존재
- 드래그 시작점 (lux, luy)와 끝점(rdx, rdy)는 lux < rdx, luy < rdy를 만족
- 입출력 예시
wallpaper | result |
[".#...", "..#..", "...#."] | [0, 1, 3, 4] |
["..........", ".....#....", "......##..", "...##.....", "....#....."] | [1, 3, 5, 8] |
[".##...##.", "#..#.#..#", "#...#...#", ".#.....#.", "..#...#..", "...#.#...", "....#...."] | [0, 0, 7, 9] |
["..", "#."] | [1, 0, 2, 1] |
💻 코드
최종 코드
코드 풀이
반응형
'코딩문제풀이 > 파이썬' 카테고리의 다른 글
[프로그래머스] 귤 고르기 (파이썬) (0) | 2023.04.22 |
---|---|
[프로그래머스] 신고 결과 받기 (파이썬) (0) | 2023.04.21 |
[프로그래머스] N개의 최소공배수 (파이썬) (0) | 2023.04.19 |
[프로그래머스] 멀리 뛰기 (파이썬) (0) | 2023.04.18 |
[프로그래머스] 구명보트 (파이썬) (0) | 2023.04.17 |