[BOJ-S1] 16926: 배열돌리기 1

아이엠강욱·2023년 5월 20일
0

코딩테스트

목록 보기
13/23

해당 문제를 확인하시고 싶으면 아래 링크를 통해 확인해주세요!
https://www.acmicpc.net/problem/16926


예전에도 못풀어서 블로그 올렸었는데.... 이번에도 못푸네... 증말..
언제쯤 실버문제들을 시원시원하게 풀 수 있을까요~!
이번문제 아쉬웠던 점은 오로지 구현력이었다. 문제이해와 로직은 설계했지만 구현을 하지 못했다.

구현문제에서 구현력이 문제면.. 어쩌자는건지! 계속 노력노력노력하자!

"""
백준 16926 (S1): 배열 돌리기1
https://www.acmicpc.net/problem/16926
"""

n, m, r = map(int, input().split())   # n, m: 배열의 크기 / r: 회전의 수
matrix = [list(map(int, input().split())) for _ in range(n)]   # 2차원 배열

for _ in range(r):
  for i in range(min(n, m) // 2):
    sx, sy = i, i   # 시작 x,y좌표
    temp = matrix[sx][sy]   # 임시저장값
    
    # 왼쪽줄
    for j in range(i+1, n-i):
      sx = j   # x좌표 설정
      prev = matrix[sx][sy]   # 값 미리 저장
      matrix[sx][sy] = temp   # 미리 저장되어있던 값 넣기 (이전 값 넣기)
      temp = prev   # 미리 저장하는 곳에 현재값 넣기
    # 아래줄
    for j in range(i+1, m-i):
      sy = j   # y좌표 설정
      prev = matrix[sx][sy]
      matrix[sx][sy] = temp
      temp = prev
    # 오른쪽줄
    for j in range(i+1, n-i):
      sx = n-1-j
      prev = matrix[sx][sy]
      matrix[sx][sy] = temp
      temp = prev
    # 윗줄
    for j in range(i+1, m-i):
      sy = m-1-j
      prev = matrix[sx][sy]
      matrix[sx][sy] = temp
      temp = prev
      
      
for i in range(n):
  for j in range(m):
    print(matrix[i][j], end=" ")
  print()
profile
블로그 이전했습니다!! https://dev-iamkanguk.tistory.com/ <<- 여기로 오세용!!

0개의 댓글