개발 이야기/Problem Solving
1913: 달팽이
가마뫼
2015. 4. 29. 19:43
문제: https://www.acmicpc.net/problem/1913
N이 3일 때와 5일 때를 직접 그려보면 규칙성이 보인다.
해결 방법은 여러가지가 있겠지만, 나는 ↑, →, ↓, ← 를 하나의 사이클로 보고 해결하였다.
예를 들어 N = 5일 때
처음 시작하는 행과 열의 index는 2, 2이며 (0 Based)
첫 번째 사이클에서
↑ 1칸, → 1칸, ↓ 2칸, ← 2칸
두 번째 사이클에서
↑ 3칸, → 3칸, ↓ 4칸, ← 4칸
으로 움직이고 세 번째 사이클에서
↑ 4칸으로 가면서 끝나는 것으로 알 수 있다.
이것을 조금 일반화 하면 달팽이 배열의 끝은 항상 ↑에서 종료됨을 확인할 수 있기 때문에
↑ 반복문에서 달팽이 배열이 끝나는 지만 체크하면 된다.
소스 코드를 참고하세요. 소스 코드
반응형