우선 본인은 올해 10번 이상의 코테를 경험하면서 50문제 이상 풀어봤고, 그중 못 푼 문제는 단 3문제임.
라인 3번, 카카오 인턴 4번, 수시채용 1문제.
중수라고 표현한 이유는 다푼게 아니라 3문제 못풀어서. ㅎㅎ
그리고 본인은 알고리즘 개좆밥임. 코테도 올초까지는 개좆밥이었음.
굳이 어려운 알고리즘 공부 안해도 코테 잘 볼 수 있다. 물론 너가 머리가 된다는 전제하에.
코테 개좆밥들에게 이 글이 도움이 됐으면 한다.
1. 선행지식
코테에서 요구하는 자료구조와 알고리즘의 수준은 다음과 같다.
자료구조: array, linked list, stack, queue, deque, tree, graph, BST, heap, hash table (r-b tree, trie 몰라도 됨)
알고리즘: big-O, sorting, brute force, recursion, iteration, binary search, BFS/DFS, backtracking, divide and conquer, bit manipulation, two pointers, sliding window, dynamic programming (topological sort, union-find, KMP 몰라도 됨)
위의 것들 중 자료구조는 반드시 개념을 모두 익혀두어야 한다. 그래야 문제를 풀 때 컴퓨터적으로 사고할 수 있다.
알고리즘은 big-O 말고는 문제를 풀면서 자연스럽게 익히게 되니 따로 공부할 필요 없다. big-O 개념은 반드시 미리 알아두자.
또한 적어도 하나의 프로그래밍 언어에 능숙해야 한다.
보통 c++, 자바, 파이썬을 많이 쓰는데, 자바는 너무 장황하기 때문에 나는 c++이나 파이썬을 추천한다.
그리고 해당 언어에서 문제를 푸는데 유용한 팁 같은 걸 익혀두면 좋다.
예를 들어 나는 파이썬을 많이 쓰는데, [[] for _ in range(n)] 같이 list comprehension을 사용하면 편하다.
2. 어떤 문제를 풀어야 하는가?
결론부터 말한다. 백준 풀지 말고 릿코드 풀어라.
왜 그래야 되는지는 3가지의 이유가 있다.
1) 문제 난이도
백준은 알고리즘 대회를 준비하는 애들이 이용하는 사이트이다. 알고리즘 대회에 나오는 문제 난이도는 코테와 비교불가다.
비유하자면 수능에서 4점짜리 문제들이 알고리즘 대회 문제고, 2점짜리들이 코테 문제다.
우리는 2점짜리만 맞히면 되는데 4점짜리를 맞기 위한 공부를 한다? 당연히 쓸데없는 짓이고 니 머리만 빠개진다.
솔브드 써서 골드 이하만 풀면 안되냐고? 그래도 문제가 너무 많을 뿐더러 문제의 질도 들쑥날쑥하다.
릿코드는 모든 문제가 실제 해외 기업 인터뷰에서 출제된 문제들이다. 따라서 대부분이 적절한 난이도이며 문제 질도 뛰어나다.
2) 온라인 저지 환경
백준에서 문제 풀때 백준 에디터에 쌩으로 코드 작성해서 제출하는 빡대가리는 없을 거라고 생각한다. 대부분 다른 에디터나 ide에 작성한 다음 복붙해서 제출할 것이다. 반면 릿코드는 에디터가 잘 되어있어서 별개의 에디터가 필요 없다. 디버깅도 가능하다.
그리고 백준은 문제 풀때 표준 입출력을 사용한다. 이게 엄청 어려운 건 아니지만 은근히 귀찮다. 그리고 코테 중에 표준 입출력을 사용하라고 하는 데는 한군데도 없다. 릿코드는 그냥 함수만 작성하면 된다.
마지막으로, 백준은 씹덕들이 테케를 쥰나게 많이 기여해놔서 채점이 오질라게 오래 걸린다. 릿코드에서는 그럴 일 없다.
3) 커뮤니티
백준 게시판: 60%에서 막히는데 뭐가 문제인가요?, 어디가 틀렸는지 모르겠습니다 ㅠㅠ, 반례좀 찾아주세요 ㅠㅠ
릿코드 discussion: JAVA solution beats 100%, Easy and consice O(n) C++ solution, O(1) space solution with easy explanation
제목만 봐도 어디가 더 도움될지 알 수 있다.
따라서 나는 백준이 아닌 릿코드를 풀기를 추천하고, 아래에서도 릿코드를 기준으로 설명할 것이다.
또한, 우리나라의 많은 회사들이 코테 환경으로 프로그래머스를 사용하기 때문에 프로그래머스도 같이 풀면 좋다.
3. 어떻게 풀어야 하는가?
1) 모든 문제를 풀어라
릿코드에서 algorithm으로 분류된 모든 문제를 풀어라.
Easy라고 거르지 마라. 싫어요 많다고 거르지 마라. 너같은 개좆밥은 문제 가릴 처지가 아니다.
2) 한 문제당 시간제한을 두어라
구글에서는 한문제 푸는데 45분을 주는데, 이 정도 시간이 적당하다고 생각한다.
문제 읽기 시작부터 제출까지 시간재고 풀고, 시간 넘으면 과감하게 포기해라.
한문제에 끝까지 매달리는 것보다 여러 문제를 풀고 못 풀더라도 피드백하면서 배우는게 더 효과적이다.
3) Follow up 무시하지 마라
가끔 문제 밑에 Follow up이라 해서 추가조건을 제시하는 문제들이 있다. 선형시간 안에 풀으라거나 O(1) 공간복잡도 제한 같은.
이런 문제는 이 follow up이 본 문제다. 이걸 풀어야 이 문제를 진짜로 푼 거다.
그러므로 좆만하게 써있다고 무시하지 말고 꼭 풀어라.
4) 히든 테스트케이스 보지 마라
릿코드는 코드를 제출하면 틀렸을 때 input을 보여준다.
그런데 실제 코테에서 히든 테케를 보여주는가? 그럴 일 없다. 심지어는 테케를 통과했는지도 안알려주기도 한다.
5) Discussion은 반드시 봐야 한다
일단 문제를 못 풀었으면 풀이를 봐야 하니까 당연히 봐야 하는 거고
중요한건 니가 문제를 풀었더라도 discussion은 반드시 봐야 한다.
너보다 더 좋은 시간/공간복잡도를 가진 답안이 있을 수 있고, 같은 로직이라도 너는 존나 복잡하게 코딩한 걸
다른 사람은 더 쉽게 작성했을 수도 있다.
좋아요를 많이 받은 코드는 이유가 있다. 보고 배울 수 있는 걸 배워라.
니가 모르는 언어로 되어있어도 읽어라. 어자피 다 C에서 유래한 거라 읽는 건 가능하다.
나는 discussion 보는게 문제 푸는 것 이상으로 중요하다고 생각한다.
나는 릿코드 200솔 하고 나서부터 어떤 문제든 풀 수 있다는 느낌이 들더라.
실제로 그 뒤에 봤던 코테들은 틀린 적이 없기도 하고.
아무쪼록 열심히 해서 좁밥 탈출하길 바란다.
회사댕기면서 취미로 풀고있는데 릿코드 좋아보이긴하네 근데 왜 코테만보냐
? 취직해야대니깐 코테를 보져 ㅎㅎ
잘푸는데 왜 아직 못했냐 이거야
사실 오늘 합격통보받아서 이글씀 ㅎㅎ
올 ㅊㅋㅊㅋ
ㄱㅅㄱㅅ
인턴 4번 20분컷
AI로 자소서 첨삭 받으셈
지피티, 제미.나이, 클로드 AI, 등 오티티 70% 싸게 가능함 (코딩 AI)
https://goodmanytips.com/plus/
음 좋은 글인거 같네 고맙다 4번 생각해보니 그러네
와.. 도움되는글이다 고마워
4번 ㅈㄴ 개꿀팁이네 감사합니다 아무 생각없이 어떤 케이스에서 틀렸는지 계속 봤는데 생각해보니 보면 안되는 거였음..
개추줌 ㄳㄳ
형님들 혹시 파이썬 c++ 말고 node js 로 연습해도 괜찮을까?
노드로 뭔코테를..
백준 입출력이 귀찮아서 그렇지 프론트 엔드라면 노드로 푸는 게 맞다고 봄. 비전공자면 c++이 좋을 거 같고
프론트면 노드가 편하지
고수님 혹시 코테 완전 처음 시작하면 알고리즘 스터디플렌 1~3 쭉 한다음 비어있는거 푸는 식으로 하면 될까요??
진짜 주변에 조언해 주는 사람이 몇 없어서 이런거 하나하나가 너무 고맙다.......사랑해
감사감사 ㅎㅎ
그 200솔 하는데 얼마나걸림?
릿코드 codemirror라서 에디터 별로안좋아 ㅋㅋ 해커랭크가 monaco editor(마소에서만든 vscode 기반된 라이브러리) 라서 좋지 ㅋㅋ 할꺼면 해커랭크에서해
찾아보니까 vscode에 릿코드 익스텐션있네 ㅋㅋ 개발자도구로 네트워크탭에서 쿠키 복붙하면 연동되고 vscode로 문제랑 코딩 제출까지 다되네 ㅋㅋ 개꿀
고맙다
안녕하세요 릿코드 문제풀때 한국어로 번역해서 풀어봐도 될까요?