-
VS Code로 JavaScript 코딩 테스트 공부( + 입력, 출력, 백준 10926번 ??! Node.js )Coding Test 2022. 10. 10. 22:47
VS Code로 백준 Online Judge 코딩 테스트를 공부하기 하려고 한다. 그리고 내가 선택한 개발 언어는 JavaScript 이다.
JavaScript 문제는 백준에서 Node.js 환경으로 제공하고 있기 때문에, 우선 VS Code - Extensions에서 'Code Runner'를 설치해야 한다. 그리고 물론 컴퓨터에 Node.js 도 미리 설치되어 있어야 한다.
Code Runner 컴포넌트 Code Runner 와 Node.js 가 준비가 되었다면, '오픈 폴더'를 하고 '뉴 파일'을 해서 확장자 .js인 파일을 만든다. 그리고 코드를 작성해서 바로 런하면 Node.js 환경이기 때문에 원하는대로 잘 동작하는 것을 확인할 수 있다.
그런데 JavaScript에서 이미 입력해놓은 데이터가 아니라, 사용자나 외부에서 Console 을 통해 데이터를 입력 받는 상황이 있다. 백준 온라인 저지 코딩 테스트에 맞게 문제를 풀기 위해서는 데이터 입력 시 아래와 같은 코드를 이용해야 한다.
let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split(' '); console.log(input);
그래서 우선 혼자 vs code에서 문제를 풀 때는 입력받을 데이터를 txt 파일을 만들어서 복사 붙여넣기 해놓고 저장한다.
그 다음 그 txt 파일의 절대 경로를 아래처럼 입력해서 코드를 입력한 js 파일을 저장한다.
readFileSync('txt 파일 절대 경로')
그리고 vs code 내부에 있는 terminal 창에서 아래처럼 입력해주면, 실행 결과가 터미널 창에 출력된다.
node 하고 js 파일 상대경로를 입력해준다. 그리고 문제를 맞게 풀었다면, 입력 받은 데이터 txt 파일 경로만 '/dev/stdin'로 바꿔서 복사 붙여넣기 하고 제출하면 된다.
* 백준 10926번 ??! Node.js
문제에서 요구하는 것을 정확하게 파악하는 것이 중요하다.
내가 헷갈린 문장 : 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오.
처음에 '존재하는지 아닌지를 판단하는 것'을 물어보는 줄 알았다. 하지만 문제의 요지는 이미 존재하는 아이디라고 가정하고, 그냥 입력된 아이디에 ??!을 붙여서 나온 문자열을 출력하라는 뜻이었다.
const fs = require('fs'); const input = fs.readFileSync('/dev/stdin').toString().split(); console.log(input); // [ 'baekjoon' ] const input2 = fs.readFileSync('/dev/stdin').toString().trim(); console.log(input2); // baekjoon
trim()은 문자열의 좌우 공백을 없애서 반환해준다. split() 은 지정한 문자열 또는 디폴트값인 ' '(공백)을 기준으로 주어진 문자열을 분리시켜서 리스트 형식으로 반환해준다. 이 문제에서는 하나의 문자열만 입력받고 사용하기 때문에, trim()을 사용한다.
const fs = require('fs'); const input = fs.readFileSync('/dev/stdin').toString().trim(); console.log(`${input}??!`);
외부 참조 링크
https://www.acmicpc.net/problem/10926
10926번: ??!
준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때
www.acmicpc.net
JavaScript로 코딩테스트 준비하기(1) - 입출력
코딩테스트는 일반적으로 아래의 3단계로 구성됩니다. 입력: 주어진 입력을 받아들여 프로그램의 자료구조에 저장하기 계산: 알고리즘을 활용하여 정답을 계산하기 출력: 정답을 주어진 형식에
velog.io
https://nyang-in.tistory.com/156
[백준]백준에서 node.js 입출력 방법 정리(백준/자바스크립트/코딩테스트/알고리즘)
안녕하세요. 이번 시간에는 백준에서 node.js 입출력 방법에 대해 알아보겠습니다. 자바스크립트로 코딩테스트를 준비할 경우, 백준에서는 node.js를 선택하여야 합니다. 그런데 node.js가 좀 번거롭
nyang-in.tistory.com
https://overcome-the-limits.tistory.com/198
[알고리즘] 백준 10926 ??! with node.js
들어가며 518일 동안 단 하루도 빠지지 않고 알고리즘을 풀었다는 글을 본 적이 있습니다. 이 글을 보면서, 생각해보면 하루에 혼자만의 힘으로 다른 코드를 참고하지 않고 코드를 짠 경험이 얼
overcome-the-limits.tistory.com
[백준] 10926. joonas??! (feat. Javascript / node.js) 알고리즘
준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 힌트 : String.prototype.trim()
velog.io
'Coding Test' 카테고리의 다른 글
[JS] 프로그래머스 코딩테스트 Lv. 1 ) 핸드폰 번호 가리기 (0) 2022.10.22 [JS] 프로그래머스 코딩테스트 Lv. 1 콜라츠 추측 (0) 2022.10.22 [JS] 프로그래머스 코딩테스트 Lv.1 두 정수 사이의 합 (0) 2022.10.22 [JS] 프로그래머스 코딩테스트 연습 Lv. 1) 정수 내림차순으로 배치하기 (0) 2022.10.17 [JavaScript] 프로그래머스 코딩테스트 1 - Lv.0, 1 4문제 (0) 2022.10.14