1074번
1074번 - Z 처음에는 처음부터 모든 점을 방문하면서, 찾고자 하는 r,c 가 나왔을 때 답을 출력하도록 했더니, 시간초과가 발생했다. 그래서 다 방문하지 않고, r,c를 찾아가는 코드를 분할정복과 재귀를 이용해서 구현했다. 왼쪽 상단, 오른쪽 상단, 왼쪽 하단, 오른쪽 하단 순서로 방문하도록 for문을 이용해서 첫값을 구했다. 그리고 해당하는 점이 사분할 된 곳 중에 어느 곳에 있는지 확인하고, 그 사분면으로 이동하도록 구현했다. 만약 2사분면에 있다면, 1사분면의 모든 갯수를 더한 다음 순서가 되고, 만약 3사분면에 있다면, 1사분면+ 2사분면의 모든 갯수를 더한 다음 순서가 되기 때문에 모든 정점을 방문하지 않고 , 곧바로 목표로 하는 정점으로 방문해도 정답을 구할 수 있기 때문이다. 12345..
더보기
1913번
1913번 - 달팽이 내가 까다롭게 푼지는 모르겠는데, 처음에 약간 까다롭다고 느꼈다. while 문에서 아래로 쭉, 오른쪽으로 쭉, 위로 쭉, 왼쪽 쭉, 아래로 쭉... 이런식으로 반복되기 때문에 dx,dy 배열을 만들어서 x,y 값을 이동시키면서 문제를 풀었다. 그리고 dx,dy 안에 들어갈 인덱스 d 값은 x나 y가 범위를 벗어나거나, 이미 수가 채워져 있으면 변화하도록 만들었다. 그리고 다 짜고 보니, k=0일때 한번 더 들어가는게 확인돼서, while문의 조건문에 추가해서 문제를 풀었다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include#includeusing namespac..
더보기