포스트 난이도: HOO_Junior
# AI가 있는데도 코딩 테스트를 해야 한다니
우리가 코테라고 줄여서 부르는 코딩 테스트는 엔지니어이든 개발자이든 면접 때마다 피할 수 없는 기본 평가이다. 나의 주니어 개발자인 AI를 쓰다가 오랜만에 코테를 보려니 아주 짜증이 난다. 사람이란 동물은 적응의 동물이라고 이전에 손으로 일일이 치던걸 하려니 귀찮다. 아무튼 AI 중에서도 LLM이 점차 대중화되면서 개발자들은 AI를 잘 다룰 수 있어야함과 동시에 이 놈의 코테도 그대로 봐야 하는 지경에 이르렀다. 이번 포스트는 기초 문제로 나오는 정수 분리와 연산하는 예제를 가지고 왔다.
# 의도를 파악하는 것이 중요하다.
내가 코테를 안본지가 꽤 되다 보니, 트렌드를 잊어버려서일 수도 있겠지만, 내가 느끼는 코테 스타일의 변화가 있다. 과거의 코테는 말 그대로 기본 코딩 실력을 보고자 했다면, 요즘의 코테를 보면, 응용력에 중점을 두는 것 같았다. 한마디로 코드를 작성할 때 문법이 기억이 나지 않거나 에러가 발생하더라도 기회를 더 주고 중점적으로 평가하는 요소는 문제 자체의 의도를 파악해서 풀어낼 수 있는지를 보려고 했다.
이게 무슨 말이냐면, 내가 코테를 많이 하던 몇년 전까지만 해도 (고인돌시절) 문제에서 뭘 만들어내야 하는지를 설명하고 이를 구현하는 거에 초점을 맞췄다면, 이제는 이런 역할은 AI가 더 빠르게 대신해 줄 수 있다 보니, 문제 자체의 의도를 말하지 않고 숨기고 이 의도를 파악해서 나와있는 결과를 맞춰주는 거에 초점이 맞춰있다는 것이다. 정말 별거 아닌 아래 예제의 두자리 정수를 분해하고 다시 연산하는 문제만 보더라도 문제 자체의 이런 과정을 수행하라는 말은 나와있지 않다. 다만 결과를 보여주고 개발자로 하여금 "아 두 자리 숫자가 더해져서 결과가 나오는 거구나, 그렇다면 어떤 연산과정을 써야겠네." 이런 추론 능력을 보려고 하는 문제들이 많아졌다.
그래서 개인적인 생각으로는 코테가 당장 사라지지 않을거고 솔직히 코테를 아무리 많이 푼다고 해서 동일한 문제가 나오지는 않는다. 다만 문제 자체를 추론해서 결과를 산출해야 하는 트렌드를 알고 문제를 풀면 훨씬 문제를 파악하기가 쉬워지는 것 같다.
# 예제
아래의 예제코드는 "For n=29, the output should be solution(n)=11."이라고 나와있는 문제에 대한 결과이다. 뒤에 다른 값들을 넣었을때 산출되는 결과들을 보여주긴 하지만 솔직히 문제의 핵심은 위의 문장이 끝이다. 한마디로 문제에서 보여주는 건 결과를 보여주고 이에 대해서 본인이 추론해서 결과에 대한 과정을 산출하라고 나온다.
뒤에 나오는 다른 결과 예제들도 보면 "For n=55, the output should be solution(n)=10"이라고 나오는걸로 봐서 1초 만에 아 두 자릿수를 분해해서 다시 더하라는 거구나가 보인다면 성공한 셈이다. 문제는 신입 개발자들은 이런 추론 능력이 부족해서 시간이 좀 걸릴 수 있고 늙은이 개발자들은 문제 의도는 파악했는데, 매번 AI를 쓰다 보니 문법이나 기호가 헷갈릴 수도 있다 (사실 내가 그렇다).
def solution(n):
# 십의 자리: 29 // 10 = 2
tens = n // 10
# 일의 자리: 29 % 10 = 9
ones = n % 10
return tens + ones
# 결과 확인
print(solution(29)) # 출력: 11
def solution(n):
s = str(n)
return int(s[0]) + int(s[1])
두 가지 예제를 보여준 이유는 첫 번째가 일반적인 답변이 되겠지만 나는 개인적으로 두 번째 방법으로 풀어냈다. 두 번째 방법은 문자열로 바꾼 다음에 숫자로 연산하는 게 아니라 해당 문자열에 있는 숫자를 가져오고 이를 다시 int로 바꿔서 더해주는 결과이다. 둘 중에 아무 거나해도 큰 차이는 없다. 솔직히 내가 한 방식으로 하면 괜히 예외 경우를 만들어낼 수 있다고 싫어할 수도 있다.
결과적으로 해당 예제는 정말 기초 문제로 자주 나오는 유형이며, 두번째로 코테의 스타일이 코드를 잘 작성해 낼 수 있는가에서 문제의 의도를 파악해 낼 수 있는지로 바뀌었다는 느낌이 많이 들었다. 해당 포스트가 마음에 들었다면, 앞으로 몇 가지 더 예제를 가져와서 문제 의도에 대해서 이야기를 나눠보도록 하겠다.
'Programming Languages > Python' 카테고리의 다른 글
| [파이썬 코딩 테스트] 주사위 만들기 (0) | 2026.02.13 |
|---|---|
| [파이썬 코딩 테스트] 직사각형 넓이 구하기 (0) | 2026.02.12 |
| Keras, model.compile() - 파이썬에서 케라스 모델 컴파일이란 (10) | 2025.06.14 |
| [Python] 미국 회사 코딩 테스트 예제: Solve the Two-Sum Problem Using a Hash Map (1) | 2025.01.27 |
| [Python Examples] BeautifulSoup #01: 웹페이지 텍스트 크롤링 (0) | 2024.12.16 |
댓글