← 학습 코스

직사각형 격자를 오른쪽으로 돌려요

C++디버깅

회전하면 행과 열의 개수가 바뀌어요

앞 레슨에서 행 합을 읽었어요. 이번에는 좌표가 바뀐 새 격자를 만들어요. 2행 3열을 오른쪽으로 90도 돌리면 3행 2열이에요. 새 격자 크기를 원래 크기 그대로 쓰면 직사각형에서 값이 들어갈 자리가 맞지 않아요.

원본의 첫 행은 회전 뒤 오른쪽 열로, 마지막 행은 왼쪽 열로 옮겨져요. 원본 값은 유지하고 도착 좌표만 바꿔요.

값 한 개의 도착지를 손으로 확인해요

원본 {{1,2,3},{4,5,6}}의 오른쪽 회전은 {{4,1},{5,2},{6,3}}이에요.

원본 좌표 값 회전 뒤 좌표
(0,0) 1 (0,1)
(0,2) 3 (2,1)
(1,0) 4 (0,0)

원본 마지막 행의 값은 새 열 번호 0으로 가요. 행 번호만 열 번호로 바꾸면 오른쪽 회전이 아니라 전치가 돼요. 직사각형에서도 같은 이동 관계를 만족하는지 확인해요.

직접 풀어봐요

grid를 오른쪽으로 90도 한 번 회전한 새 격자를 반환해요. 제공 함수에서 값의 도착 좌표를 정하는 잘못된 한 줄을 수정해요.

행·열 수는 각각 18이고 모든 행의 길이는 같아요. 원소는 −10001000이에요. 실행용 입력은 첫 줄 rows cols, 다음 rows줄에 cols개 원소예요. 출력은 회전 뒤의 cols행에 각각 rows개 값을 공백으로 구분해요. main은 반환 격자를 출력하는 실행용 코드예요.

예시 1: grid={{1,2},{3,4}} → [[3,1],[4,2]]. 왼쪽 아래 3이 회전 뒤 왼쪽 위로 옮겨져요. 예시 2: grid={{1,2,3},{4,5,6}} → [[4,1],[5,2],[6,3]]. 2×3이 3×2가 돼요.

예시 입력

2 2
1 2
3 4

예상 결과

3 1
4 2

예시 입력

2 3
1 2 3
4 5 6

예상 결과

4 1
5 2
6 3
핵심 개념
  • array-2d: 회전 뒤 크기와 각 값의 도착 좌표를 맞춰요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기