brunch

You can make anything
by writing

C.S.Lewis

by 재단법인 넥슨재단 Jan 31. 2023

NYPC 대상 수상자가 말하는
코딩과 NYPC

넥슨 청소년 프로그래밍 챌린지 대상 수상자들의 이야기

제7회 넥슨 청소년 프로그래밍 챌린지가 지난 10월 본선 대회를 끝으로 무사히 마무리되었다. 1214부문 16명, 1519부문 44명 총 60명의 본선 진출자 전원이 참석한 본선 대회 결과 1214 부문 대상은 청명중학교 변재우 학생 (14세), 1519 부문은 선린인터넷고등학교 장태환 학생 (17세)이 대상을 수상했다. 2020년 동상 수상을 시작으로 2021년에 이어 2022년 대회에서 대상을 수상한 변재우 군은 대회 개최 이래 최단시간 만점을 획득했다. 장태환 군은 지난 2019년부터 4년 연속 대회에 참가한 참가자로 처음 도전한 2019년에 은상을 수상하기도 했다.


장태환 군은 4번째, 변재우 군은 3번째 참가. NYPC가 성장한 만큼 더 단단하게 성장한 장태환 군과 변재우 군에게 프로그래밍과 NYPC에 대해 물어보았다. 그들이 대답을 통해 우리는 그들의 코딩에 대한 진심을 알 수 있었다. 또한 코딩 잘하는 비법도 물었다. 꽤 많은 이야기를 솔직하게 나눠주었으니 코딩과 NYPC에 관심이 있는 학생이라면 큰 도움이 될 것 같다. 자세한 내용은 영상에서 확인하기를!




1519부문 대상 수상자 장태환 군


코딩에 관심을 갖게 된 계기가 있나요?

초등학교 6학년 때 우연히 C언어를 접하고 세 달 후에 경험 삼아 나갔던 정보올림피아드에서 수상을 하게 되었어요. 시작한 지 얼마 되지 않았는데 상을 받으니 코딩이 더 재미있어지고 제가 잘할 수 있는 분야라는 확신이 들어 더 열심히 하게 된 것 같아요.


본인만의 코드 짜는 방식이 있다면?

제가 문제를 해결하고 코드를 짜는 방식은 문제마다 다르지만, 주로 관찰을 통하여 문제의 상황을 간단하게 만든 뒤, 그 상황에 맞는 알고리즘과 적용 방법을 완벽히 생각해 두고 구현합니다.


코딩 실력을 키우기 위해서 어떤 노력을 하고 있나요?

코딩 실력을 키우기 위해서 가장 자주 한 일은 여러 사이트에서 문제를 많이 풀어보는 것입니다. 여러 사이트에서 문제를 풀어보면서 많은 아이디어와 테크닉들을 알 수 있게 되었습니다. 시간 배분 능력을 키우기 위해서 온라인으로 열리는 여러 대회에도 참가하고 있습니다.


가장 좋아하는 프로그래밍 언어는 무엇인가요? 그 이유는요?

c++입니다. 기존에 사용하던 c에서는 사용할 수 없었던 많은 라이브러리를 사용하여 구현의 부담을 줄일 수 있고, 객체 지향을 사용하여 더 편한 코딩을 할 수 있습니다. c언어의 장점인 빠른 속도도 그대로 유지하기 때문입니다.


코딩 공부에 실제적으로 많은 도움을 받았던 것이 있다면 무엇이었나요? 그 이유는?

백준 온라인 저지에서 가장 많은 도움을 받았습니다. 그 사이트에서 2만 개 이상의 문제를 찾아서 풀어 실력을 늘릴 수 있었고, solved.ac라는 프로그램을 사용하여 문제의 난이도를 분류하고 맞는 문제를 찾아서 풀 수 있었던 게 큰 도움이 되었습니다.


NYPC 2022에 참가하면서 가장 어려웠던 부분이 있었다면 무엇인가요? 어떻게 극복했나요?

라운드 2-A에서 한 문제를 푼 뒤에 나머지 문제들이 전혀 생각이 안 나는 일이 있었습니다. 하지만 부분 문제들을 생각한 결과, 결국 완전히 푼 문제는 없음에도 충분한 양의 부분 점수를 얻어 본선에 올라갈 수 있게 되었습니다.


처음 은상을 수상했던 19년도와 동상을 수상했던 20년도를 거쳐 대상을 수상했습니다. 어떤 부분이 가장 발전했다고 생각하나요?

시간 관리 부분이 가장 발전했다고 생각합니다. 작년 대회에서는 한 문제에 세 시간 정도를 쓰는 바람에 다른 문제를 많이 생각하지 못했던 아쉬운 기억이 있었습니다. 이번에는 그런 실수를 하지 않고 시간 배분을 잘하여 대상을 받을 수 있었습니다.


여러 번 대회에 참가한 참가자로서, 재참가 하는 참가자들을 위한 꿀팁이 있다면?

저는 NYPC에 4번째 참가하고 있는데요, NYPC 대회는 다른 프로그래밍 대회들과 비교하면 독특한 부분이 있으므로 예전 NYPC 기출문제를 최대한 많이 풀어보고 대회 시간을 어떻게 활용할지 미리 생각해 두는 게 좋은 팁이라고 생각합니다.


나에게 코딩이란? 

저에게 코딩이란 저를 나타내는 수단입니다. 제 머릿속에만 가지고 있던 아이디어들과 풀이들을 코딩으로 세상 밖으로 나타낼 수 있습니다.






1214부문 대상 수상자 변재우 군


본인만의 코드 짜는 방식이 있다면?

전체적인 틀을 먼저 구상한 뒤에 세부적인 디테일은 프로그램을 작성하면서 생각합니다. 대략적인 알고리즘이 나왔으면 망설이지 말고 바로 구현하기 시작하고 그때그때 생각하면서 프로그램을 짜는 편입니다.


코딩에 관심은 많은데 어려울 것 같다고 생각하는 친구들이 많아요. 쉽게 코딩에 입문하는 방법이 있다면 어떤 것이 있나요?

우선 온라인 강의나 블로그를 보면서 C언어나 Python 같은 프로그래밍 언어의 기본적인 문법만 공부합니다. 그 뒤에 알고리즘을 배우면서 고급 문법은 다른 사람들의 코드를 참조하며 천천히 공부하면 어렵지 않게 프로그래밍을 배울 수 있습니다.


코딩 실력을 키우기 위해서 어떤 노력을 하고 있나요?

문제를 많이 풀어보는 경험이 중요하기 때문에 최대한 많은 문제를 풀어보고 있고, 간혹 사용되는 복잡한 알고리즘에 대해서도 공부하고 있습니다.


2020년 동상 수상을 시작으로, 작년과 올해에 대상을 수상 했습니다. 비결이 무엇인가요?

많은 문제를 풀이를 보지 않고 풀어보는 것이 비결이었던 것 같습니다. 어떻게 풀지 잘 모르겠어도 한계까지 최대한 여러 가지 방법으로 생각해 본 뒤에 풀이를 보고, 어떤 것이 문제를 푸는데 핵심이었는지를 생각해 봤습니다. 또한 실제 대회처럼 시간 안에 문제를 풀어야 하는 구조로 되어있는 여러 온라인 대회로 연습하는 것도 좋은 것 같습니다.


본선 대회에서 주어진 시간 내에 빠르게 문제를 잘 풀어낼 수 있었던 노하우가 있다면 무엇인가요?

문제를 빠르게 푸는 것은 알고리즘 구상과 구현, 이렇게 두 가지가 중요합니다. 알고리즘 구상을 빠르게 하려면 알고리즘에 대해 깊이 이해하고 많이 적용해 보는 것이 중요하고, 구현이 복잡한 문제를 최대한 간결하게 해결해 보려는 시도를 해보면 빠르고 가독성 있게 구현할 수 있습니다. 또한 자주 쓰이는 코드는 외워서 시간을 단축할 수 있습니다.


나에게 코딩이란?

나에게 코딩이란 ‘요리’입니다. 알고리즘이라는 재료, 프로그래밍 언어라는 조리 도구, 그리고 창의력이라는 레시피를 통해 하나의 프로그램을 작성하는 것이죠. 여러 가지 방법으로 음식이라는 하나의 예술 작품을 만들어내듯이 저는 알고리즘과 C언어, 컴퓨터와 저의 생각으로 코딩을 합니다.



매거진의 이전글 무료 프로그래밍 학습 플랫폼 BIKO 베타 오픈

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari