티스토리 뷰
728x90
https://programmers.co.kr/learn/courses/30/lessons/77485
- 해설 :
1부터 row * column의 값으로 채워진 2차 행렬과 회전시킬 테두리의 x1,y1,x2,y2 좌표가 주어질 때, 이 행렬의 테두리를 회전시키며 변경된 값 중에 가장 작은 값을 찾는 문제이다
- 풀이 :
행렬을 회전시킬 때 테두리 4개에 대해 회전하는 로직을 구현하였다. 이 때, 겹치는 부분인 각 꼭짓점은 따로 저장을 하여 겹치는 문제가 발생하지 않게 하였고 회전시키는 for문이 돌아갈 때 min 값을 매 번 초기화시켜 최솟값을 구하였다.
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 29 30 31 32 33 34 35 36 37 38 | def solution(rows, columns, queries): answer = [] array = [[0 for col in range(columns)] for row in range(rows)] t = 1 for row in range(rows): for col in range(columns): array[row][col] = t t += 1 for x1,y1,x2,y2 in queries: tmp = array[x1-1][y1-1] mini = tmp for k in range(x1-1,x2-1): test = array[k+1][y1-1] array[k][y1-1] = test mini = min(mini, test) for k in range(y1-1,y2-1): test = array[x2-1][k+1] array[x2-1][k] = test mini = min(mini, test) for k in range(x2-1,x1-1,-1): test = array[k-1][y2-1] array[k][y2-1] = test mini = min(mini, test) for k in range(y2-1,y1-1,-1): test = array[x1-1][k-1] array[x1-1][k] = test mini = min(mini, test) array[x1-1][y1] = tmp answer.append(mini) return answer | cs |
320x100
'Algorithm > Implementation' 카테고리의 다른 글
(Python) - 프로그래머스(2020 KAKAO BLIND RECRUITMENT) : 괄호 변환 (0) | 2022.01.19 |
---|---|
(Python) - 프로그래머스(2021 KAKAO BLIND RECRUITMENT) : 메뉴 리뉴얼 (0) | 2022.01.18 |
(Python) - 프로그래머스 : 완주하지 못한 선수 (0) | 2022.01.17 |
(Python) - 프로그래머스 : 음양 더하기 (0) | 2022.01.17 |
(Python) - 프로그래머스(2020 카카오 인턴쉽) : 키패드 누르기 (0) | 2022.01.17 |
댓글
© 2022 WonSeok, All rights reserved