1 minute read

알고리즘 한줄 변태 되기

변태 같지만 '오히려' 좋아

알고리즘들을 풀어보면서 남들이 푼 것을 볼 기회가 많다

그러다보면 여러 유형들을 본다 깔끔하고 보기 좋고 논리가 잘 풀어져있는 경우, 비효율적인 경우, 개선이 필요한 경우 등이 있다

이런 코드들도 흥미롭지만 내게 가장 눈에 들어오는건 바로 ‘한줄 변태’ 코드이다 아무리 어려운 문제라도 기발한 방법으로 한줄로 푸는 코드들을 보면 경이롭다는 기분이 든다

왜 경이롭다고 생각이 드냐 그들은 여러 방식을 사용해서 어떻게든 한 줄로 만드는데 집중한다는 것이다 알고리즘의 목적이자 가장 중요한 점은 논리적이고 다방면의 사고를 기르는 것이라고 생각한다 그런 점에서 단순히 문제를 푸는 수준이 아니라 이 문제를 어떻게하면 단 한 줄로 풀 수 있을까를 고민하고 사고하고 여러 방식으로 접근하며 문제를 해결한다는 것은 알고리즘의 목적과 일치하는 부분이 있다고 생각한다 그리고 그 결과물들은 내가 생각하지 못 했던 부분까지 건드려주며 호기심과 상상력을 자극한다

한편으로 조금 아쉬울 수 있는 부분은 시간이나 메모리이다 한줄 변태의 길을 가다보면 당면하는 문제 중 하나는 약간의 비효율성이 생길 수 있다는 것이다 일단 변수를 생성하는 것부터 자유롭지 못 하게 된다 한 줄에 변수를 만들기란 여간 자유롭지 못 한 일이고 그렇다 보니 같은 값을을 반복해서 끼워 넣어서 메모리를 더 많이 쓸 수도 있다 그리고 더 소요시간을 짧게 쓸 수도 있지만 이런 변수같은 부분에서 걸리다보면 시간이 늘어나서 썩 좋지 않은 결과를 나을 수도 있다

하지만 그럼에도 선택한다 한줄 변태의 길을 걸어가며 일반적인 방식으로도 사고한다 그러면 둘의 장점을 얻을 수 있고 내 사고력에 좋은 영향을 줄 수 있다고 생각한다

‘한 줄 변 태’