Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스
- spring oauth
- Kotlin
- 백준 17626
- java 기술면접
- spring cloud
- re.split
- JPA
- Spring Boot
- spring security
- 백준 17779
- sql 기술면접
- 백준 16719
- Coroutine
- 파이썬
- 웹어플리케이션 서버
- MySQL
- JVM
- 백준 16236
- 백준 15685
- with recursive
- 백준
- MSA
- Spring
- 백준 19238
- java
- springboot
- 프로래머스
- 백준 16235
- 백준 파이썬
Archives
- Today
- Total
시작이 반
[백준] 16926번번 (python 파이썬) 본문
SMALL
구현 문제이다.
문제의 그림처럼 그대로 풀었다.
여기서 겉의 사각형부터 맨 안쪽의 사각형까지 몇번 들어가야 하는지 고민했는데
제한 조건에 min(N, M) mod 2 = 0 이란 조건이 있었다.
즉 min(N, M)를 2로 나눈 값만큼 안으로 들어가면된다.
배열을 돌리는 방법은
바꿀 좌표를 계산하고 그 좌표의 값을 저장해놓고 이전 좌표의 값을 계산된 좌표의 값에 넣는 식으로 계산하였다.
이러한 순서로 계산하였다.
하나의 사각형을 다 돌렸으면 안쪽 사각형으로 들어간다.
n, m, r = map(int, input().split(' '))
graph = [list(map(int, input().split(' '))) for _ in range(n)]
for _ in range(r):
for i in range(min(n, m) // 2):
s_x, s_y = i, i
s_value = graph[s_x][s_y]
for j in range(i + 1, n - i): #좌
s_x = j
prev_value = graph[s_x][s_y]
graph[s_x][s_y] = s_value
s_value = prev_value
for j in range(i + 1, m - i): #하
s_y = j
prev_value = graph[s_x][s_y]
graph[s_x][s_y] = s_value
s_value = prev_value
for j in range(i + 1, n - i): #우
s_x = n - j - 1
prev_value = graph[s_x][s_y]
graph[s_x][s_y] = s_value
s_value = prev_value
for j in range(i + 1, m - i): #상
s_y = m - j -1
prev_value = graph[s_x][s_y]
graph[s_x][s_y] = s_value
s_value = prev_value
for i in range(n):
for j in range(m):
print(graph[i][j], end=' ')
print()
LIST
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 17276번번번 (python 파이썬) (0) | 2021.04.01 |
---|---|
[백준] 2615번번 (python 파이썬) (2) | 2021.03.31 |
[백준] 20436번번 (python 파이썬) (0) | 2021.03.30 |
[백준] 20291번번 (python 파이썬) (0) | 2021.03.29 |
[백준] 1244번번 (python 파이썬) (0) | 2021.03.29 |