1. 문제
https://programmers.co.kr/learn/courses/30/lessons/77485?language=python3
2. 풀이
- 쉬워보여서 도전했는데 생각보다 귀찮은 문제였음..
- 어디서 어디로 대입을 해야하는지를 꼼꼼하게 체크하자
- 가로 세로 헷갈리지 않도록 명확한 기준을 잡는 것이 중요
3. 코드
def circle(x1,x2,y1,y2):
min_num = board[x1][x2]
temp1, temp2, temp3 = 0, 0, 0
temp1 = board[x1][x2]
for i in range(x1, y1):
if board[i+1][x2] < min_num:
min_num = board[i+1][x2]
board[i][x2] = board[i+1][x2]
temp2 = board[x1][y2]
for i in range(y2-1, x2-1, -1):
if board[x1][i] < min_num:
min_num = board[x1][i]
board[x1][i+1] = board[x1][i]
board[x1][x2 + 1] = temp1
temp3 = board[y1][y2]
for i in range(y1-1, x1-1, -1):
if board[i][y2] < min_num:
min_num = board[i][y2]
board[i+1][y2] = board[i][y2]
board[x1+1][y2] = temp2
for i in range(x2, y2):
if board[y1][i] < min_num:
min_num = board[y1][i]
board[y1][i] = board[y1][i+1]
board[y1][y2 - 1] = temp3
if min(temp1,temp2,temp3) < min_num:
min_num = min(temp1,temp2,temp3)
return min_num
def solution(rows, columns, queries):
answer = []
global board
index = 1
board = []
for i in range(rows):
element = []
for j in range(columns):
element.append(index)
index = index +1
board.append(element)
for i in queries:
x1,x2,y1,y2 = i[0],i[1],i[2],i[3]
answer.append(circle(x1-1,x2-1,y1-1,y2-1))
return answer
'ALGORITHM > Kakao' 카테고리의 다른 글
[Python] 다단계 칫솔 판매 (0) | 2022.03.24 |
---|---|
[Python] 사라지는 발판 (0) | 2022.03.24 |
[Python] 파괴되지 않은 건물 (0) | 2022.03.16 |
[Python] 신고 결과 받기 (0) | 2022.03.16 |
[Python] 양과 늑대 (0) | 2022.03.14 |