아무래도 이런 유형의 문제를 처음 풀다보니 방향을 정하는 데 고민이 많았을 것입니다. 어떤 문제든 최대한 단순화하여 푸는 것이 제일 좋습니다. 다양한 상황을 고려한다고 필요 없는 부분까지 고민해 코드를 짜는 것은 스스로 문제의 난이도를 높이는 꼴입니다.
문제 풀이 최적화
앞에서 풀이한 내용 자체는 괜찮았지만 좀 더 정리할 부분은 없을지 궁금합니다. 내용을 다시 짚어보면서 최적화해보겠습니다.
1. n × n 2차원 배열을 생성합니다.
이전과 동일한 방식으로 2차원 배열을 생성합니다.
res = [[0] * i for i in range(1, n + 1)]
2. 반시계 방향의(시작은 아래로) 나선형으로 배열을 채워 나갑니다.
반시계 방향 자체를 구현해야 하는 것은 변하지 않습니다. 하지만 구현을 어떻게 하는가에 따라 결과가 크게 달라질 수 있습니다. 다음 코드를 보죠.