BOJ 1913 : 달팽이
A형 필수 알고리즘을 체계적으로 배우고 싶다면? (인프런 바로가기) 알고리즘 문제 전체 링크 www.acmicpc.net/problem/1913 배열의 중심 좌표에서 달팽이 모양의 배열을 만들면 된다. 먼저 배열의 중심 좌표 (sr, sc)는 N / 2 + 1이 된다.문제의 예시 7인 경우 (4, 4) 부터 배열이 시작됨을 알 수 있다.sr = sc = N / 2 + 1; N = 5인 경우 규칙을 살펴보자.먼저 처음 1 → 2의 방향은 ↑ 방향이 된다.달팽이는 ↑, →, ↓, ← 로 방향을 반복해서 바꾼다.따라서, dr, dc는 아래와 같이 정의할 수 있다./* ↑, →, ↓, ← */int dr[] = { -1, 0, 1, 0 };int dc[] = { 0, 1, 0, -1 }; 방향이 두 번 바뀔 ..
2021. 4. 30.
BOJ 1080 : 행렬
알고리즘 문제 전체 링크 www.acmicpc.net/problem/1080 A[r][c] != B[r][c]일 때, 위에서부터 왼쪽으로 A[r][c] ~ A[r + 2][c + 2]까지 뒤집으면 된다. 즉, (r, c)에서는 한 번만 뒤집던가, 뒤집지 않으면 된다. (r, c)에서 두 번 이상 뒤집는 것은 원래대로 돌아오기만 하므로 연산의 횟수만 낭비가 된다. (r, c)를 제외한 3 x 3 좌표는 다음 자기 차례가 올 때, 뒤집을지 판단하면 된다. #include #define MAX (50 + 5) int N, M; int A[MAX][MAX]; int B[MAX][MAX]; void input() { scanf("%d %d", &N, &M); for (int r = 1; r
2021. 4. 10.