습관을 애정한다

코드업 기초 100제 vs. 코드파이트 Intro 비교 후기

by 습관중독

1. 코드파이트 Intro
1) 난이도: 문제별로 차이가 꽤 있음.
- 초반: 1-11번까진 정말 쉬웠던 거 같은데, 13번이 어려웠음.
- 초중반: 23번, 24번이 어려웠음.
- 중반: 25번~50번. 32번, 33번이 좀 어려웠었음. 이때가 가장 재밌었고 하루에 10문제 이상씩 풀 때인데, 베스트 코드 패턴 몇개 훔치고, 자료형에 대한 이해나 리스트, 문자열, 제어문, 반복문에 좀 익숙해지면서 좀 쉬운 건 빨리 푼게 된 거 같음.
- 후반: 59번이 어려워서 몇시간 매달리다가 치팅했고, 50번대는 중반부에 비해선 꽤 어려웠음.
2) 재미: 그래픽도 꽤 좋고 적당한 gamification으로 소소한 재미
3) 애러, 디버깅: 애러가 난 원인을 정확히 보여주기 때문에 디버깅이 쉬운 편.
4) Best Code: 이게 아마 가장 큰 장점. 베스트 코드를 보면서 나의 얼기설기 짜여진 허접 코드와 비교해서 너무나 아름답고 간결한 코드를 보면서 엄청나게 좌절. 10위 안에 있는 파이썬 코드는 모두 파일 하나에 통합해서 이해안되는 함수 같은 거 찾아보니 꽤 반복되는 부분이 있어 몇가지 함수나 패턴은 훔쳤음. 내가 생각하는 베스트 코드의 요소는
- 1줄짜리 베스트 코드는 함수로 문제 해결하고, 보통 return에서 관계식까지 써버리면서 True, False값을 if문 생략하면서 리턴하는 형태
5) 구글링의 중요성을 배움: 뭔가 이렇게 하면 될 거 같은데? 하는 아이디어가 가장 중요한 것 같음. 모델링이란 단어까진 좀 거창하지만. 아이디어만 있으면 구글링해서 웬만한 건 다 할 수 있는 거 같다. 스택오버플로 가보면 한 아디어의 여러가지 버전 구현도 볼 수 있고.
6) 빈출 풀이 패턴: 항상 리스트, 문자열은 많이 쓰인 것 같음. 자료형 상호간 변환. 코드업 100제에선 set()가 전혀 쓰이지 않으나 코드파이트에선 set로 쉽게 풀리는 or 반드시 써야만 하는 문제가 몇개 있음.
7) 추천 풀이 방법: 13번, 23번에 너무 스트레스 받아서, 거의 2주일 간 아예 코딩 자체를 그만두었었다. 그만두고 인공지능을 위한 수학이란 책을 보고 왔는데, 사실 수학 증명만 보다 코딩이 좀 하고 싶어지기도 했었고, 수학 증명 도출 과정이 모델링이랑 좀 비슷해서 좀 잘풀린 거 같기도 하고, 여튼 중반부 25~50번까진 내게 적당한 난이도라 정말 너무 재밌게 했었다. 내 스스로의 현재 실력에 비해 너무 어려운 문제다 싶으면 그냥 솔직히 과분한 문제임을 인정하고, 할만한 문제 여러개 풀다보면 다시 나중엔 그 문제 쉬워져 있을 수 있지 않을까 하는 생각에 3-4시간, 길면 6시간 정도 고민하다가 10/12 test 정도 통과하고 hidden test 통과 못하면 걍 속편하게 치팅하거나 정말 너무 억울하면 hidden test 보고 풀고 그랬다. 불완전하더라도 빠르게 완주하고 다음 stage로 나가는 게 전체 학습 속도엔 빠르지 않을까 생각한다.

2. 코드업 기초 100제
1) 코드파이트 Intro 난이도에 비교하면 70문제 정도는 코드파이트 1-10번 난이도 문제. 하지만 리스트, 반복/제어문, 자료형과 문자열에 대한 이해는 코드파이트에서도 매우 중요하게 자주 쓰이기 때문에 선행으로 풀어볼만 한 거 같다.
2) 95번 이후는 코드파이트 중간 난이도와 비슷한 거 같음. 특히 99번은 꽤 어려웠음.
3) 빈출 풀이 패턴: 리스트, 문자열은 많이 쓰이고, 상술한 바와 같이 set로 푸는 문제는 140문제 정도를 풀었으나 없었던 거 같음. 대신 특이하게 비트연산자 사용 문제가 좀 있음.
4) 애러, 디버깅: 이게 좋지 않음. 내 주피터 노트북에서는 실행되고 결과출력까지 되서 아무 문제 없었는데, 코드업에서는 아예 결과값조차 나오지 않는 경우가 있었는데, 이때 애러코드를 못봐서 디버깅 하는 게 너무 어려웠음. 소소한 팁은 주피터 노트북에서 되는 경우, Visual Studio나, 코렙에서는 안되는 경우가 있어서 여기서 애러코드 확인할 수 있어서 디버깅 가능했었음.
5) 장점: 코드파이트에선 베스트코드가 있어서 최상위권 코드를 볼 수있고, 그걸 훔칠 수 있는 게 장점. 정신적 보상이 베스트코드로 이루어지므로, 간결한 코드, 1줄 코드에 집착하게 되는 거 같음. 코드업에서는 베스트코드를 볼 수 없는 점은 꽤나 아쉽다. 효율적 코드와 내 코드를 비교해보는 경험은 초반 실력 향상에 난 크게 도움 되었기 때문이다. 코드업에서 재밌는 건 푼 문제수 기준인지, 정답 문제수 기준인지는 모르겠으나, 전체 순위가 나오는데 이게 또 은근 자극되고 MMORPG에서 레벨업 하는 기분이 있어서 올려가는 재미가 쏠쏠하다. 초반 문제는 쉬워서 저렙 사냥 느낌. 초반엔 등수가 엄청 낮았었는데 1만 등 안쪽엔 들고 싶어서 원래 기초 100제만 풀고 접을 생각이었는데 어느덧 140문제를 풀고 있었다..

'코드 파이트(Code Signal)' 카테고리의 다른 글

Code Signal: Intro=60/60  (0) 2020.02.24
Code Signal: Intro=59/60  (0) 2020.02.24
Code Signal: Intro=58/60  (0) 2020.02.24
Code Signal: Intro=57/60  (0) 2020.02.23
Code Signal: Intro=56/60  (0) 2020.02.23

블로그의 정보

습관을 애정한다

습관중독

활동하기