모두들 건강 챙기면서 공부하기! 고로나 막차를 타서 3주째 고통받다가 등장
난 안 걸리거나 무증상일 줄 알았지^^.. 가족한테 옮았음ㅠ
3주동안 고열로 정신을 못차렸내용.. 문제는 꾸준히 풀었지만 포스팅을 못함. 이때까지 푼 D2, D3문제를 업로드할 예정이다
swea 문제를 풀다가 만난.. 회전문제
당연히 풀지 못했고.. 구글링 하던 나를 구해준.. 멋있는 티스토리 ㅠ
꼭 참고하기!
https://blackon29.tistory.com/63
[Python] 2차원 배열 90도 회전 알고리즘
코딩테스트 2020 KAKAO 신입 공채 를 풀다보니 2차원 배열의 90도 회전을 요구하는 문제가 있었다. 파이썬에서 2차원 리스트를 다룰 때 종종 사용되는 개념이므로 코드공식에 적어두고 필요할 때마
blackon29.tistory.com
2차원 배열 회전

■ 90도 회전 시
회전 후 행 번호 = 회전 전 열 번호
회전 후 열 번호 = N-1-회전 전 행 번호
SWEA 1961. 숫자 배열 회전 D2
# 1961. 숫자 배열 회전
tc=int(input())
for t in range(1,tc+1):
print("#{}".format(t))
n=int(input())
# nXn 행렬 입력받기
nlist=[list(map(int,input().split())) for _ in range(n)]
#90/180/270 turn
t90=[[0 for _ in range(n)]for _ in range(n)]
t180=[[0 for _ in range(n)]for _ in range(n)]
t270=[[0 for _ in range(n)]for _ in range(n)]
for i in range(n):
for j in range(n):
t90[i][j]=nlist[n-1-j][i]
for i in range(n):
for j in range(n):
t180[i][j]=t90[n-1-j][i]
for i in range(n):
for j in range(n):
t270[i][j]=t180[n-1-j][i]
for i in range(n):
for a in range(n):
print(t90[i][a], end='')
print(end=' ')
for b in range(n):
print(t180[i][b], end='')
print(end=' ')
for c in range(n):
print(t270[i][c], end='')
print()
처음에 행렬에서 90 180 270 각각 변환시켜서 진행해서 엄청 오래걸렸는데...
90->180, 180->270 이걸 왜 생각을 못했나
아무튼 저 분 덕에 잘 이해하고 반복 복습 중이다
0이 아닌 값들만 출력
x for x in nl if x
for nl in nlist:
ans=[x for x in nl if x]
print(*ans)
이 문제에서 사용!
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
'알고리즘' 카테고리의 다른 글
| 알고리즘 이론 :: 패턴 마디 체크 방법 (0) | 2022.10.27 |
|---|---|
| 알고리즘 이론 :: DFS/BFS (1) | 2022.10.04 |
| 알고리즘 이론 :: 2차원 배열에서 상하좌우 이동 방법 (1) | 2022.09.28 |