반응형

https://www.acmicpc.net/problem/15501

 

15501번: 부당한 퍼즐

현욱은 퍼즐 게임을 굉장히 좋아한다. 어느 날 현욱은 친구로부터 간단한 플래시 퍼즐 게임을 하나 추천 받았는데, 이 퍼즐 게임은 다음과 같은 규칙을 갖고 있다. 플레이어는 1 ~ n 까지 숫자가

www.acmicpc.net

 

시작 위치와 방향을 잡은 뒤, 그 방향대로 쭉 가면 "good puzzle"이었습니다.

#include <cstdio>
int n, m, a[1000000], s, dir, f = 1;
int startIndex(int mm) {
	for (int i = 0; i < n; i++)
		if (a[i] == mm) return i;
	return -1;
}
int main() {
	scanf("%d", &n);
	for (int i = 0; i < n && scanf("%d", &a[i]); i++);
	for (int i = 0; i < n && scanf("%d", &m); i++) {
		if (i > 1) {
			s = dir ? (s + 1) % n : (s - 1 + n) % n;
			if (m != a[s]) {
				f = 0;
				break;
			}
		}
		else if (i == 0) s = startIndex(m); // 시작위치
		else { // i==1 방향잡기
			int leftVal = s == 0 ? a[n - 1] : a[s - 1];
			dir = leftVal == m ? 0 : 1;
			s = dir ? (s + 1) % n : (s - 1 + n) % n;
		}
	}
	printf("%s puzzle", f ? "good" : "bad");
}
반응형

'Algorithm' 카테고리의 다른 글

백준 10830 : 행렬 제곱  (0) 2021.11.11
백준 6137 : 문자열 생성  (0) 2021.11.11
백준 1713 : 후보 추천하기  (0) 2021.11.11
백준 2866 : 문자열 잘라내기  (0) 2021.11.11
백준 10546 : 배부른 마라토너  (0) 2021.11.11

+ Recent posts