← 실전 문제

직사각형 회전 뒤 합계

C++디버깅

직사각형 배열을 시계 방향으로 90도씩 turns번 회전해요. 회전이 끝난 배열을 행 순서로 읽으면서 각 값에 1부터 시작하는 위치 번호를 곱한 뒤 모두 더해요.

예를 들어 최종 배열이 [[4,1],[5,2],[6,3]]이면 4×1+1×2+5×3+2×4+6×5+3×6을 계산해요. int solution(vector<vector<int>> board, int turns)가 이 합을 반환하도록 잘못된 한 줄을 고쳐 주세요.

매개변수와 반환값

처음 행 수와 열 수는 각각 15이고, 모든 행의 길이는 같아요. 각 값은 0100이에요. turns는 0~5예요. 배열은 비어 있지 않고 값은 중복될 수 있어요. 회전할 때 행과 열의 수가 서로 바뀌어요. 위치 번호는 최종 배열의 행·열 수를 기준으로 매겨요. 반환형은 int예요.

예시

  1. board=[[1,2,3],[4,5,6]], turns=1 → 77: 최종 배열은 [[4,1],[5,2],[6,3]]이고 위 계산의 합이 77이에요.
  2. board=[[1,2],[3,4]], turns=2 → 20: 최종 배열은 [[4,3],[2,1]]이고 4+6+6+4=20이에요.

자동 채점 입력·출력

첫 줄은 행 수 R, 열 수 C, 회전 횟수예요. 다음 R줄에 C개의 값이 있어요. 계산한 합을 한 줄에 출력해요. main은 채점용이며 수정 대상은 solution의 한 줄이에요.

예시 입력

2 3 1
1 2 3
4 5 6

예상 결과

77

예시 입력

2 2 2
1 2
3 4

예상 결과

20
핵심 개념
  • simulation-2d: 원본 좌표를 회전 뒤 좌표로 옮겨요.
  • array-2d: 행·열의 길이와 최종 위치 번호를 구분해요.

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

로그인하고 풀기