[일본취업_IT엔지니어] 코딩테스트 전격 분석!

코딩이 필요한 이유는? IT엔지니어가 필요한 이유는?

이 글을 읽기 전에, 먼저 이 질문들에 대해 먼저 답을 생각해봐.

사실, 저 두가지 질문의 답은 같아.

바로 코딩이 사람의 삶을 편리하게 해주기 때문이야.

코딩을 통해 사람은 기계를 효율적으로 조작하고, 한발짝 더 나아가서 기계의 효율을 올릴 수 있어.

그리고 그 기계는 수많은 사람을 도와주고, 테슬라의 자율주행처럼, 애플의 M1칩처럼 세상을 바꾸지.

그리고 수많은 사람들이 이렇게 기계의 효율을 높히기 위해,

컴퓨터 과학을 연구하며, 다양한 데이터구조, 알고리즘을 만들어내며 노력해왔지.

현대 IT기술과 문명의 이기는 이러한 노력들의 산물이야.

그리고 IT엔지니어가 되려면 이러한 노력을 할 준비가 되어있거나, 노력의 산물을 공부할 준비가 되어있어야해.

그리고 코딩테스트는 이런 노력을 할 수 있는 논리적 사고가 가능한지, 혹은 노력의 산물에 대한 공부를 해왔는지를 확인하는 시험이야.

그럼 다시 코딩테스트 대비로 돌아가보자.


1. 코딩테스트란?

코딩테스트란, IT엔지니어를 위한 기술적 역량 테스트로 지원자가 임의 혹은 자신이 선택한 컴퓨터 언어(C++,Java, Python) 등으로 문제를 해결할 수 있는 함수를 소스코드로 작성하고, 그 소스코드를 시간복잡도 등 다양한 방법으로 평가받는 시험이야.

IT엔지니어로서의 역량은 무엇일까? 말 그대로 기초 실력.

즉, 코딩테스트는 요약하면 언어와 관계없이 어느정도의 논리적 사고가 가능한지 어느정도의 기초 지식이 있는지 확인하는 시험인거지.


2. 그럼 어떻게 공부해야할까

사실 근데, 코딩테스트를 푸는데, 아까 말한 사람들이 연구해놓은 컴퓨터 과학을 완전 처음부터 하나씩 학문적으로 공부할 필요는 없어.

그리고 사실 나오는 것이 어느 정도 정해진 시험이기 때문에 자주 나오는 알고리즘 달달외우고 체계적으로 문제 많이 풀다보면 다 풀 수 있어.

게다가 일본꺼는 더 쉽단 말이지. 적당히 50문제 정도만 플어봐도 이상한 실수만 하지 않으면 거의 90퍼 이상 붙을 수 있을거야.

여기서 가장 우선적으로 해야 할 것은 논리적인 사고, 머리를 말랑말랑하게, 이런게 아니라

언어에 익숙해지는거야.

논리적 사고는 빠르게 만들 수 있는게 아니야.

우선 너가 코딩테스트 볼 언어를 선택해.

어셈블리언어와 C를 제외하곤 어떤 언어라도 괜찮아.

그 어떤 언어도 배워본 적이 없다? 그럼 파이썬을 추천해.

그리고 너가 선택한 언어로 문제를 계속 풀어.

그런데 여기서 보통 2가지 문제가 발생해.

1. 개발자처럼 푼다는 것을 제대로 이해하지 못하고 공부를 시작해.

문제를 푸는 건 ‘답을 외운다. 과정을 외운다’가 아니라

‘자신이 푼 문제에 대한 논리를 다른 문제에도 활용할 수 있느냐’ 야.

그리고 그렇게 하기 위해서는 생각&타이핑으로 문제를 푸는데에는 한계가 있어.

논리를, 생각한거를, 종이에 적어가며 문제를 풀어. 적으면 사고의 흐름이 보여.

문제의 요구사항정리 → 해결방법탐색 → 수도코드(너만 알아봐도 되는 간추린 손코드)작성

순으로 문제를 종이에 먼저 푸는거야. 하다보면 퍼즐맞추기같아서 재밌을걸? ㅎㅎ

그렇게 50문제 정도를 공부해야해.

2. 멋진 개발자처럼 꾸준히 하지 못해.

꾸준히 하는 건 정말 정말 힘들어. 그래서 멋진 개발자처럼이라고 적었어. 하지만 기업은 멋진 개발자를 원하지.

솔직히 50문제는 완전 초보라도 3달이면 해 근데 그 3달동안 꾸준히하고 그 이후로도 자신이 약한 부분에 대한 공부를 꾸준히 하는 거야. 정말 쉽지 않아.

그래서 깃헙에 계정을 만들어놓고 코테준비항목을 만들고 매일 커밋해서 풀밭을 만드는 걸 목표로 진행하는걸 추천해. 매일한다라는 뚜렷하고 보이지 않는 목표보다는 깃헙의 내 페이지를 초록색 범벅으로 만들어 기업에 어필하겠다라는 마음으로 목표를 만드는 거야.

めざせ! 풀밭!

깃헙이 풀밭인 계정은 그것을 보이는 것만으로 면접관과, 인사담당자에게 +100만점을 받을 수 있는 소중한 찬스야. 꼭 해보도록해. 깃헙사용법은 구글링하면 많이 나오니까 열심히 찾아봐. 구글링도 IT엔지니어의 필수스킬이야.

만약, 이 두가지를 신경써서 3개월정도 꾸. 준. 히. 했다면, 일본기업의 코딩테스트는 두려워하지 않아도 돼.


3. 어느 정도로 공부해야 할까?

사실 코테 준비의 정석적인 방법은 알고리즘을 처음부터 공부하는거야.

소트부터 힙, 스택, 큐, 해시, 그래프, 그리디, 다이나믹, 탐색등 다양한 알고리즘을 공부하며

백준과 프로그래머스와 같은 문제은행사이트에서 직접 사용해보고 이해하는 거지.

하지만 빠르게 하고 싶잖아? 일본 기업은 코테가 그렇게 어렵지도 않은데, 그만한 시간을 쓰는건 본말전도라고 생각해.

이 아래의 문제들을 꾸준히 순서대로 정복해나가.

일본 코딩테스트의 합격기준은 대부분 백준 실버 티어 정도의 수준이야.

여기 아래 문제들은 백준 브론즈에서 실버수준의 일본 코딩테스트 대비를 위한 엄선한 문제들이야.

아! 그리고, 그리디, 다이나믹, DFS, BFS를 사용하는게 메인인 문제들은 일본 코딩테스트 준비와 맞지 않는다고 생각해서 일부러 뺐어. 혹시 공부하고 싶다면 구글에 ‘DFS 추천문제’, ‘BFS 추천문제’, ‘DP 추천문제’ 를 검색해봐.

개발자처럼 풀고, 꾸준히 공부해.

(여기 있는 것들 하나도 못풀겠다 싶으면, 구글링을 해. 심지어 첫번째 문제가 Hello World 라고?)


4. 추천문제

너무 쉬운 문제는 넘어가고, ‘어? 한번에 풀이가 안떠오르네’ 하는 문제부터 시작해!

브론즈🥉

https://www.acmicpc.net/problem/2557

www.acmicpc.net

https://www.acmicpc.net/problem/1000

www.acmicpc.net

https://www.acmicpc.net/problem/1330

https://www.acmicpc.net/problem/2501

https://www.acmicpc.net/problem/3460

https://www.acmicpc.net/problem/10818

https://www.acmicpc.net/problem/2460

https://www.acmicpc.net/problem/11720

https://www.acmicpc.net/problem/10870

https://www.acmicpc.net/problem/2309

https://www.acmicpc.net/problem/2750



실버 🥈 (실버는 난이도가 조금 들쭉날쭉할수도있어. 미안해!)

https://www.acmicpc.net/problem/2609

https://www.acmicpc.net/problem/2693

https://www.acmicpc.net/problem/1978

https://www.acmicpc.net/problem/1292

https://www.acmicpc.net/problem/2581

https://www.acmicpc.net/problem/1181

https://www.acmicpc.net/problem/1316

https://www.acmicpc.net/problem/1427

https://www.acmicpc.net/problem/2751

https://www.acmicpc.net/problem/4673

https://www.acmicpc.net/problem/2941

https://www.acmicpc.net/problem/1789

https://www.acmicpc.net/problem/1676

https://www.acmicpc.net/problem/3085

https://www.acmicpc.net/problem/2293

https://www.acmicpc.net/problem/2294

https://www.acmicpc.net/problem/2667

https://www.acmicpc.net/problem/1141

https://www.acmicpc.net/problem/2504

https://www.acmicpc.net/problem/14888

골드 🥇 지만 할만한 거 (도전해봐! 생각보다 할만할걸?)

https://www.acmicpc.net/problem/1038

https://www.acmicpc.net/problem/1062

https://www.acmicpc.net/problem/17070

https://www.acmicpc.net/problem/2023

이걸로 IT엔지니어 코딩테스트 가이드를 마칠게. 다들 꾸! 준! 히! 깃헙을 풀밭으로 만들어봐~

아. 세줄요약.. 이번엔 진짜 매우 간단해. 하지만 실천이 어렵다는 점 명심해!

1. 코테 볼 언어 선택하기

2. 종이에 적으며 풀기

3. 꾸준히 열심히 하기


안타깝게도 IT엔지니어 전격 분석 시리즈! 는

이번 코딩테스트편을 마지막으로 연재를 종료해.

다들 열심히, 꾸준히 공부해서 좋은 성과 얻기를 바라며, 진심으로 응원할게! 화이팅!!!

혹시 IT엔지니어 취활에 관해 원하는 컨텐츠나 질문이 있다면 댓글로 알려줘!

– IT엔지니어 취업 꿀팁 시리즈 🍯

https://cafe.naver.com/koreccafe/3406

https://cafe.naver.com/koreccafe/3460

https://cafe.naver.com/koreccafe/3493

https://cafe.naver.com/koreccafe/3501