티스토리 뷰
문제
이미지를 표현하는 N x N 행렬이 있다. 이미지의 각 픽셀은 4바이트로 표현된다. 이때 이미지를 90도 회전시키는 메서드를 작성하라. 부가적인 행렬을 사용하지 않고서도 할 수 있겠는가?
풀이
배열의 가장 바깥쪽 레이어 부터 값을 90도 이동시키고 안쪽 레이어까지 반복해주면 됩니다.
구현 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <vector> | |
using namespace std; | |
void rotate(vector<vector<int>>& matrix, int n){ | |
//가장 바깥쪽 레이어부터 안쪽 레이어까지 반복한다. | |
for(int layer=0;layer<n/2;++layer){ | |
int first = layer; | |
int last = n - 1 - layer; | |
//현재 레이어의 모서리부터 회전하고 한칸씩 이동한다. | |
for(int i=first;i<last;++i){ | |
int offset = i - first; | |
int top = matrix[first][i]; | |
matrix[first][i] = matrix[last - offset][first]; //왼쪽 아래 -> 왼쪽 위 | |
matrix[last - offset][first] = matrix[last][last - offset]; //오른쪽 아래 -> 왼쪽 아래 | |
matrix[last][last - offset] = matrix[i][last]; //오른쪽 위 -> 왼쪽 아래 | |
matrix[i][last] = top; //왼쪽 위 -> 오른쪽 위 | |
} | |
} | |
} |
'Coding Test > 코딩인터뷰 완전분석' 카테고리의 다른 글
[c++] 코딩인터뷰 완전분석 - 배열과 문자열 8 (0) | 2020.09.28 |
---|---|
[c++] 코딩인터뷰 완전분석 - 배열과 문자열 7 (0) | 2020.09.25 |
[c++] 코딩인터뷰 완전분석 - 배열과 문자열 5 (0) | 2020.09.23 |
[c++] 코딩인터뷰 완전분석 - 배열과 문자열 4 (0) | 2020.09.22 |
[c++] 코딩인터뷰 완전분석 - 배열과 문자열 3 (0) | 2020.09.21 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HiveQL
- 출전 순서 정하기
- 스파크
- Jaeha's Safe
- 삼각형 위의 최대 경로
- 두니발 박사의 탈옥
- 코딩인터뷰 완전분석
- Hadoop
- microwaving lunch boxes
- python
- HDFS
- 백준
- 종만북
- 알고스팟
- 2225
- 분할정복
- Django
- 배열과 문자열
- C++
- 하이브
- Sqoop
- hive
- 외발 뛰기
- 팰린드롬 구하기
- 하둡
- import
- 삼각형 위의 최대 경로 수 세기
- 합친 lis
- 완전탐색
- pyspark
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함