https://app.codesignal.com/interview-practice/task/5A8jwLGcEpTPyyjTB/description
✔️문제 요약
1.주어진 배열에서 시계방향으로 90도 회전한 배열 출력
✔️풀이 방법
1.예제로 준 부분의 인덱스를 살펴본 결과 , 행/열을 전환하고 좌우 반전을 해주면 되는 것을 파악했다! 따라서 두단계로 나누어 해당 코드를 구현해줌
#시계방향 가로세로 90도 회전
#(0,0) (0,1) (0,2)
#(1,0) (1,1) (1,2)
#(2,0) (2,1) (2,2)
#(0,2) (1,2) (2,2)
#(0,1) (1,1) (2,1)
#(0,0) (1,0) (2,0)
#행열의 구조를 바꿔주면됨
#첫번째 행은 열이3 두번째 행은 열이 2 세번째 행은 열이 1
#첫번째 열은 행이1 두번째 열은 행이 2 세번째 행은 행이 3
#행,열을 바꿔주고 좌우 반전 해준다
def solution(a):
row=col=len(a)
#행,열 전환
for i in range(len(a)):
for j in range(i):
a[i][j], a[j][i] = a[j][i], a[i][j]
#좌우반전
for m in a:
for k in range(col // 2):
m[k], m[col-1-k] = m[col-1-k], m[k]
return a
✔️고찰
-다른 풀이들은 뭔가 나처럼 무식하게 푼 것 같지 않아서 ... 코동 리뷰시간 때 다른 사람 풀이를 들어봐야겠다.
'코딩테스트 > 코딩테스트 Python' 카테고리의 다른 글
[CodeSignal] firstNotRepeatingCharacter (Python) (0) | 2022.09.19 |
---|---|
[CodeSignal] findProfession (Python) (0) | 2022.09.19 |
[CodeSiganl] missingNumber (Python) (0) | 2022.09.07 |
[CodeSignal] singleNumber (Python) (0) | 2022.09.05 |
[CodeSignal] amendTheSentence (Python) (0) | 2022.09.05 |
댓글