코딩 테스트 스터디/기타

JavaScript 코딩 테스트 정리

남쪽마을밤송이 2022. 8. 1. 01:22

 [01 내장 함수] 

 (1) 입출력 

  • 입력 : readline과 fs 두 가지 방법이 있지만 fs가 더 빠름, 프로그래머스는 입력 방식을 신경 쓸 필요 없긴 함
const fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

console.log(input);
  • 출력
     
console.log()

 

 (2) 문자열 

1. 자르기
출처 : https://codechacha.com/ko/javascript-how-to-substring/

  • split : 구분자로 문자열 자르기
let str = 'Hello, World, Javascript';
console.log(str.split(','));   // [ 'Hello', ' World', ' Javascript' ]

console.log(str.split(',', 0));    // []
console.log(str.split(',', 2));    // [ 'Hello', ' World' ]
💡 split으로 특정 문자 개수 구하기 : 문자열을 배열로 변환 후 배열의 크기에서 -1
ex) 쉼표의 개수 구하기
const str = 'HTML,CSS,JavaScript';
const count = str.split(',').length - 1;

// ',' 개수 : 2

출처 : https://gent.tistory.com/467?category=360524

  • substr : 특정 Index에서 원하는 길이만큼 잘라서 문자열로 리턴
let str = 'HelloWorldJavascript';

let a = str.substr(5);
let b = str.substr(0, 5);
let c = str.substr(0, 10);

console.log(a);    // WorldJavascript
console.log(b);    // Hello
console.log(c);    // HelloWorld
  • substring : 시작 Index에서 끝 Index 전까지 문자열을 잘라서 리턴
let str = 'Hello World Javascript';

let a = str.substring(6);
let b = str.substring(6, 8);
let c = str.substring(6, 0);

console.log(a);    // World Javascript
console.log(b);    // Wo
console.log(c);    // Hello
  • slice : substring과 비슷하지만 인자로 음수가 전달되었을 때, substring()은 빈 문자열을 리턴하는 반면 slice()는 음수 index를 적용하여 문자열을 자름
let str = 'Hello World Javascript';

let a = str.substring(0, -6);
let b = str.slice(0, -6);

console.log(a);    // (빈 문자열)
console.log(b);    // Hello World Java

2. 합치기
출처 : https://gent.tistory.com/471

  • + : 문자열 연결, concat보다 좀 더 빠름
const str = 'Java' + 'Script';
console.log(str)    // JavaScript
  • join : 배열의 원소(문자열) 합치기
const langs = ['HTML', 'CSS', 'JavaScript'];
const res = langs.join();
const res2 = langs.join('');
const res3 = langs.join('/');

console.log(res)    // HTML,CSS,JavaScript
console.log(res2)    // HTMLCSSJavaScript
console.log(res3)    // HTML/CSS/JavaScript

3. 위치
출처 : https://gent.tistory.com/462?category=360524

  • indexOf : 찾을 문자열이 없을 경우 -1 반환
const str = 'HTML,CSS,JavaScript';
const pos1 = str.indexOf('JavaScript');
console.log(pos1)    // 9

const pos2 = str.indexOf('Kotlin');
console.log(pos2)    // -1
  • search : 시작 위치는 지정할 수 없음
/* 한글 찾기 */
const str = 'HTML,CSS,자바스크립트';
const pos = str.search(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/);
console.log(post)    // 9

 

 [02 라이브러리] 

 (1) Math 

  • 최댓값, 최솟값 : 아래 방식은 ES6/ES2015 부터 사용가능
    출처 : https://jjeongil.tistory.com/949
const nums = [1, 2, 3]
Math.min(...nums)    // 1
Math.max(...nums)    // 3
  • 올림, 내림, 반올림 : float 형태에서 int 형태로 형변환 된다는 것 기억
    출처 : https://hianna.tistory.com/446
// 1.올림
const ceil_1 = Math.ceil(1); // 1
const ceil_2 = Math.ceil(1.222); // 2
const ceil_5 = Math.ceil(null); // 0
const ceil_6 = Math.ceil(0); // 0
const ceil_7 = Math.ceil(-1); // -1
const ceil_10 = Math.ceil(-1.777); // -1

// 2.내림
const floor_1 = Math.floor(1); // 1
const floor_3 = Math.floor(1.5); // 1
const floor_5 = Math.floor(null); // 0
const floor_6 = Math.floor(0); // 0
const floor_7 = Math.floor(-1); // -1
const floor_8 = Math.floor(-1.111); // -2

// 3.반올림
const round_1 = Math.round(1); // 1
const round_4 = Math.round(1.777); // 2
const round_5 = Math.round(null); // 0
const round_6 = Math.round(0); // 0
const round_7 = Math.round(-1); // -1
const round_9 = Math.round(-1.5); // -1