저는 JavaScript를 아직도 모릅니다.
이틀 전에 JavaScript로 백준의 경험치도 쌓이지 않는 베이직 문제를 풀어보았는데, input을 받는 것부터 막혀 충격을 받았습니다.
사실 어떻게 보면 가장 기본적인 I/O를 모르는 건.. 반성합니다.
프로젝트 몇 번의 경험과 스터디는 저에게 input을 가르쳐주지 않았습니다.
이유를 대보자면, js를 경험하는 경우는 보통 html, css가 같이 따라옵니다.
input은 html의 <input/> 태그로도 충분하구요.
핑계라고 생각합니다. 핑계라고 생각했기 때문에 저는 JavsScript로 코딩 테스트 준비를 위해 마음을 먹었습니다.
코딩테스트는 1~2년 전에 Java로 준비했던 경험을 제외하면, 이번이 2번째네요. 심지어 JavaScript로 준비해본 적은 단 한번도 없어 매우 부족합니다. 알고리즘도 기억에서 휘발되어서 머리가 하얘졌습니다.
그래서 이번에는 제대로 준비해보려고 합니다. 그렇다고 엄청 열심히 ‘다이아를 찍겠다’ 이런 것은 아니고, 천천히, 꾸준히가 제 목표입니다.

여러 문제를 풀어보면서 느꼈던 점은 JS는 정말 매력적인 언어입니다.
이유는 input을 구현하기 위해 제가 사용했던 방법은 CJS 방식으로 ’fs’모듈을 가져왔습니다.
const fs = require("fs");
const input = fs.readFileSync(0, "utf8").toString().trim();위 과정을 거쳐야 Input이 드디어 생깁니다.
C, C++, Java(Java I/O도 System.out.printf(''); , Scanner를 쓰는거 자체가 불친절하다고 생각합니다..), Python, Kotlin, 등등 다양한 언어를 써봤지만,
메서드를 많이 알면 알수록 문제 풀이가 정말 다양해지는 재미가 있습니다. 지난 글에 설명했던 reduce() 메서드가 그런 경우라고 생각합니다.
또한 for 반복문을
for( let i = 0; i < 10; i++) 라던지, for ( let i in arr ) 라던지, arr.forEach( a => {} ) 라던지, for( const i of arr ) 라던지 정말 많은 만큼 매력적인 언어입니다.
앞으로 다양한 문제를 풀어보며, 일기를 작성하도록 하겠습니다.
오늘의 코테 문제 : 백준 ’거스름돈 문제’를 소개해드리겠습니다. 난이도는 실버 5 입니다. 여러 고수분들이 계실거고 쉽게 해결하시겠지만, 처음해보시는 분들도 이론만 알면 풀만한 문제인 것 같습니다. 화이팅입니다.
https://www.acmicpc.net/problem/14916- #코딩테스트
- #JavaScript