[JS로 코테 준비하기] 12. 중간점검 - 프로그래머스 Lv.0 완료
개요
약 3달 전, 알고리즘 언어를 C++에서 JS로 바꿔야겠다는 마음을 먹고 [JS로 코테 준비하기]를 시작했다.
프로그래머스의 모든 문제를 풀겠다는 엄청난 의욕을 가지고 자바스크립트 뿌시기에 도전했으나.. 인턴 생활을 하면서 추가적인 시간을 내는 것이 쉽지 않았다. (핑계라면 핑계지만 11, 12월은 조금 많이 바빴다.. 😭)
하지만 언제까지 이렇게 끌고 있을 수 없었기에, 새해라는 날짜가 주는 힘을 빌려, 요 며칠 꾸준히 풀었고 드디어 프로그래머스의 level 0 문제를 다 풀었다! 딱 100문제다.
무엇을 얻었나
이 단계의 문제들은 기초적인 문제들이다. 문제를 보자마자 풀이가 생각나는 정도이며, 알고리즘이라는 말보다는 JS문법 익히기가 더 어울린다고 볼 수 있다. (물론 다른 언어로 알고리즘 풀이를 하다가 넘어온 입장에서)
나는 JS 문법을 활용해서 문제를 푸는 방식을 얻고자 했으므로, 이 과정에서 많은 것을 얻었다. 단순히 문제의 정답을 맞히는 것에 목적을 두지 않고, “C++에서는 이렇게 했던 것을 JS에서는 이렇게 하는구나”에 초점을 맞추었다.
처음의 나는
- JS의 기초적인 배열, 문자열의 메소드를 잘 활용하지 못했다.
- 불필요한 변수를 많이 만들었다. 함수형을 잘 활용하지 못했기 때문이다.
자바스크립트 코드라 보기 어려운 풀이가 대부분이었다.
(Lv. 0을 완료한) 지금의 나는
- 특정 상황에 필요한 메소드의 후보들이 잘 떠오른다.
- 함수형의 특징을 어느정도 살려, 가독성에 큰 문제가 없다고 판단되면 불필요한 변수를 만들지 않고 정답을 도출한다.
특히 배열과 문자열의 내장 메소드들에 꽤 익숙해진 것 같고, 정규 표현식의 활용도를 크게 느끼는 중이다. (물론 아직 부족한 것이 많지만 개인적으로 만족한다)
어떻게 풀었나
- 정답이 높은 문제 순으로 정렬한 뒤, 그것부터 푼다.
- 문제가 좀 어렵다 싶으면 과감하게 넘어간다. 내일 풀면 된다.
- 혼자서 정답을 도출한다(레벨이 낮으니까 가능). 최대한 JS 스럽다고 생각하는 방향의 정답을 내야 한다. 이때 mdn을 뒤지면서 내장 메소드에 익숙해진다.
- 정답을 맞힌 이후에는 무조건 다른 사람의 풀이를 본다. 이때 내 코드가 JS 스럽지 못함을 깨닫는다.
- 몰랐던 것을 알게 되면 그 부분을 정리한다.
- 2~5를 반복하면 나도 모르게 익숙해지는 부분이 생기면서 한 사이클이 점점 빨라진다.
다른 사람들의 정답을 보면서, JS 스러움에 대해 많이 배웠다. 이걸 이렇게 한다고?! 를 굉장히 많이 느끼며 함수형 풀이에 대한 감탄을 한 적이 한두 번이 아니다.
참고) 자주 보는 것이 가장 중요한 듯!
문제를 푸는 텀이 너무 길면 이전에 했던 것들을 다 까먹는다. 내가 그랬다. 찾아본 걸 또 찾아보고 또 보고 또 본다 (파란 링크가 아니라 보라 링크를 계속 클릭한다). 일주일 중 하루 날 잡고 10개씩 풀기보다는 매일 1개 혹은 이틀에 1개라도 노출 빈도를 높여 익숙함을 잃지 않는 것이 중요한 것 같다.
다시 확인해 볼 문제들
풀다가 오..?!라는 느낌을 받은 문제들은 나중에 다시 한번 풀어보려고 모아두었다.
기본적이지만 복습에 좋은 문제, 접근 법을 기억할만한 문제, 삽질 좀 한 문제들이다.
참고) 순서대로 풀면 좋은 것
→ 1번을 활용해 2번을 풀 수 있고, 2번을 활용해 3번을 풀 수 있는 소수와 관련되어 유기적으로 엮여 있는 문제였다.
앞으로 계획
다음 목표는 level 1 정복!
Lv. 1까지는 이번과 같은 방식으로 풀어볼 예정이다.
'Algorithm > Javascript로 코테 준비하기' 카테고리의 다른 글
[JS로 코테 준비하기] 14. 시저 암호 (feat. ASCII <-> 문자) (1) | 2023.01.29 |
---|---|
[JS로 코테 준비하기] 13. 자릿수 더하기 (feat. 숫자 <-> 문자열) (0) | 2023.01.22 |
[JS로 코테 준비하기] 11. 프로그래머스 - 안전지대 (feat. 2차원 배열 탐색 관련) (0) | 2023.01.15 |
[JS로 코테 준비하기] 10. 프로그래머스 - 이진수 더하기 (feat. 2진수 <-> 10진수) (0) | 2023.01.07 |
[JS로 코테 준비하기] 9. 프로그래머스 - 2차원 바꾸기 (feat. splice) (0) | 2023.01.01 |