프로그래밍 재능 테스트

 나는 디쉬는 별로 안 죽는 편이다. 하지만 가끔 지루하거나 궁금한 것이 있으면 들르는 편인데 언젠가 프로그래밍 갤러리(줄여서 푸갸르라고 함)에서 프로그래밍 재능 테스트용 문제가 있었던 것으로 기억한다. 달팽이 배열로 불리는 문제인데, 정사각형 배열에 1부터 입력한 수의 제곱분을 바깥에서 순서대로 배열에 넣는 문제였다. 예를 들어 10을 입력하면

이렇게 순서대로 숫자를 넣으면 되는 문제였다. 내 기억으로는 언제인지 기억나지 않지만 당시 푸겔에 이 문제를 시도한 사람들의 글이 꽤 있었다. 경쟁심이 발동한 나는 이 문제를 해결하기로 결심하고 당시 몇 시간에 걸쳐 겨우 문제를 풀었던 것을 기억한다. 당시 어렵게 문제를 풀고 다른 사람들이 짠 코드와 비교해 봤는데 자신의 코드가 너무 길고 복잡한 반면 다른 사람들의 코드는 한없이 깨끗하고 간결해 보여 실망했던 기억이 난다.

오늘도 언제나처럼 백준의 문제를 웅성거리며 풀다가 우연히도 과거에 자신이 작성한 코드를 둘러보다가 달팽이 배열. c”라고 저장된 파일을 보게 되었다. 순간 내가 얼마나 실력이 늘었는지 궁금했던 나는 이 문제를 다시 한 번 풀어보기로 했다. 처음 풀었을 때는 너무 오래돼서 문제푸는 것은 기억도 잘 안나는 상태여서 풀어보면 재미있을 것 같았다. 이렇게 문제를 풀기 시작했는데 이전과는 달리 순식간에 문제를 풀어나갔다. 스스로 효율적인 알고리즘을 고안해 냈고, 당시보다 훨씬 심플하고 간결한 코드를 작성했다. 문제를 모두 풀고 걸린 시간을 확인해 보니 불과 20여 분을 스스로 만족했다.

비록 재능 테스트지만 실제 프로그래밍 언어에 얼마나 익숙하고 다른 프로그램을 얼마나 만들어 보느냐에 따라 아웃풋이 달라지는 것 같다. 문제가 쉬운 문제는 아니지만 그렇다고 해결이 안 될 정도는 아니어서 한번 풀어볼 만한 문제였던 것 같다. 내 코딩 실력이 궁금하면 한번 풀어보자. 오로지 신뢰만 해서는 안된다!

밑에 내 코드!