728x90

www.acmicpc.net/problem/1074

 

1074번: Z

한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서

www.acmicpc.net

전에 풀었던 1074번...

breakcoding.tistory.com/298

 

[백준] 1074번 Z

https://www.acmicpc.net/problem/1074 1074번: Z 한수는 2차원 배열 (항상 2^N * 2^N 크기이다)을 Z모양으로 탐색하려고 한다. 예를 들어, 2*2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대..

breakcoding.tistory.com

재채점으로 시간초과가 되었다.

머리 안 쓰고 문제에 나와있는 그대로 재귀로 풀었었는데 시간제한이 0.5초로 변경되면서 시간초과로 결과가 바뀌었다.

그래서 다시 풀었다.

#include <iostream>
#include <cmath>
using namespace std;

int main() {
	cin.tie(NULL);
	ios::sync_with_stdio(false);
	int n, r, c;
	cin >> n >> r >> c;
	n = pow(2, n);
	int index = 0;
	while (true) {
		if (n == 1) {
			break;
		}
		if (r < n / 2 && c < n / 2) {
		}
		else if (r < n / 2 && c >= n / 2) {
			c -= n / 2;
			index += pow(n / 2, 2);
		}
		else if (r >= n / 2 && c < n / 2) {
			r -= n / 2;
			index += pow(n / 2, 2) * 2;
		}
		else {
			r -= n / 2;
			c -= n / 2;
			index += pow(n / 2, 2) * 3;
		}
		n /= 2;
	}
	cout << index;
	return 0;
}
728x90

'알고리즘 문제' 카테고리의 다른 글

[백준] 10974번 모든 순열  (0) 2021.01.05
[백준] 1992번 쿼드트리  (0) 2021.01.05
[백준] 1004번 어린 왕자  (0) 2021.01.03
[백준] 11866번 요세푸스 문제 0  (0) 2021.01.03
[백준] 2217번 로프  (0) 2021.01.02

+ Recent posts