inflearn logo
강의

講義

知識共有

SW 職務能力テスト合格 A型 with C++ (Advanced Algorithm)

BOJ 16935 - 配列回転3

(반)시계 회전 함수의 N, M 처리 방식

解決済みの質問

116

xeexae0808

投稿した質問数 1

0

안녕하세요, BOJ 16935번 문제를 풀던 중 시계 방향 회전(clockwise)반시계 방향 회전(counterClockwise) 함수의 구현 방식 차이에 대해 헷갈리는 부분이 있어 질문드립니다. (강의 6:22)

// 시계 방향 회전

void clockwise() {

copyMAP(temp, MAP);

int t = N; N = M; M = t;

for (int r = 1; r <= N; r++) {

for (int c = 1; c <= M; c++) {

MAP[r][c] = temp[M + 1 - c][r];

}

}

}

// 반시계 방향 회전

void counterClockwise() {

copyMAP(temp, MAP);

int t = N; N = M; M = t;

for (int r = 1; r <= N; r++) {

for (int c = 1; c <= M; c++) {

MAP[r][c] = temp[c][N + 1 - r];

}

}

}

궁금한 점은,

이 부분이 좀 헷갈려서 질문 드립니다. 감사합니다.

c++ 코딩-테스트 소프트웨어-테스트 알고리즘

回答 1

0

bloodstrawberry

안녕하세요!

회전 전, 후 (N, M) 기준으로 생각하는 것보다, row와 col의 범위를 보고 생각하시면 편할 것 같습니다.

clockwise에서 for문의 c의 범위는 1부터 M까지이니 M + 1 - c가 되어야하고,

counterClockwise에서 r의 범위가 1부터 N이니 N + 1 - r이 됩니다.

 

그래서 회전 전,후를 기준으로 N과 M을 그대로 쓰냐, 바꿔서 쓰냐는 관계가 없습니다.

input.txt에 N x M 배열을 입력해서 N이나 M을 바꿔보면서 결과를 보시면 더 이해가 잘 되실 것 같습니다.

 

또 문의사항이 있으면 답변 드리겠습니다.

 

감사합니다.

진행 방법 질문드립니다!

0

7

1

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

10

1

Singleton 관련 질문입니다.

1

25

2

갑자기 채점 사이트가 바뀌었어요

0

18

1

문제 리스트 페이지

0

21

1

part8 Notion 링크

0

20

1

채점 사이트 관련 질문드립니다

0

18

1

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

52

2

AddGameFrameworkComponentReceiver vs AddExtensionHandler

0

23

0

2주차 개념#12 트리 순회

0

24

2

백준 사이트 서비스 종료

0

108

3

잠겨버린 사물함 시간초과 관련 질문입니다.

0

25

1

프로젝트 질문 문의

0

45

1

UserService, CertificationService 책임 분리 기준 질문

0

26

1

백준 서비스 종료인데 도전 과제 프로그래머스 문제로 올려주실수 있으신가요

0

70

1

백준사이트가 종료된다고 합니다.

0

278

2

맵핑부분..

0

33

2

백준 서비스 종료

9

872

1

코딩테스트 처음인데 이런 공부방법이어도 괜찮을까요

0

55

2

Climbing Stairs 문제 basecase 생각하는 방법

0

30

1

[업데이트] 파이썬 패키지 부분에서 안되어서 강의 진행 불가

2

59

3

Visual studio 2017 을 설치할 수 없어요

0

73

2

안녕하세요 선생님 코드트리 원자충돌(2020 하반기 오전 2번)에서 질문 있습니다.

1

106

2

BOJ 2234 성곽 문제 코드에서 질문 있습니다.

2

147

1