Thief of Wealth
[Javascript] 자바스크립트의 "use strict"는 도대체 무엇일까?
개발/Javascript 2020. 11. 29. 00:39

"use strict" 도대체 무엇일까? 어느 코드에서는 있고, 어느 코드에서는 없고 항상 맨위에, 또는 함수 내에 선언되어 있는 이 문구는 도대체 무엇인가를 고민하고 잠시 미룬뒤 꽤 시간이 지나서 이제야 정답을 찾고 포스팅한다. 결론은, "use strict"는 해당 파일 전체나, 함수내의 맨 윗줄에 선언함으로써 자바스크립트 코드를 좀 더 엄격하게 심사를 하고 실행시킬 수 있게 해주는 기능을 한다. 즉, 흔히 발생하는 코딩 문법오류나 명확하게 짜이지 않은 코드, 취약점이 있는 코드들에 대해 예외를 발생시키는 기능을 한다! 되도록이면 써주는 습관을 들여야겠다.

[Javascript] 자바스크립트 map() vs foreach() 비교하기
개발/Javascript 2020. 11. 28. 22:48

arr.map(), arr.foreach() 자바스크립트에서는 arr의 각 요소에 어떠한 처리를 하고 싶을 때, 보통 for문을 쓰거나 map, foreach를 사용한다. 하지만 모든 함수에는 이유가 있는법. 각 함수의 특징을 알아보자. 공통점으로는 map과 foreach 내부에는 콜백함수를 선언할 수 있다. 함수의 인자로는 대상 어레이의 각 원소에 해당하는 elem, 해당 elem의 index, 그리고 대상 어레이인 array를 인자로 받을 수 있다. 차이점으로는 map은 콜백함수의 반환값을 원소로하는 어레이를 새로 생성하여 반환하고 대상이 된 객체는 아무 영향도 끼치지 않는다. 반면에 foreach는 콜백함수의 반환값을 원소로 하는 어레이를 기존 배열에 바로 적용시키고, 최종적으로 반환값이 존재하지 ..

[BOJ] 17413 단어 뒤집기 2 (js)
개발/알고리즘 2020. 11. 28. 20:12

문제 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 있다. 문자열의 시작과 끝은 공백이 아니다. ''가 문자열에 있는 경우 번갈아가면서 등장하며, '

article thumbnail
[BOJ] 누울 자리를 찾아라 (js)
개발/알고리즘 2020. 11. 28. 12:20

문제 일 년 동안 세계일주를 하던 영식이는 여행을 하다 너무 피곤해서 근처에 있는 코레스코 콘도에서 하룻밤 잠을 자기로 하고 방을 잡았다. 코레스코 콘도에 있는 방은 NxN의 정사각형모양으로 생겼다. 방 안에는 옮길 수 없는 짐들이 이것저것 많이 있어서 영식이의 누울 자리를 차지하고 있었다. 영식이는 이 열악한 환경에서 누울 수 있는 자리를 찾아야 한다. 영식이가 누울 수 있는 자리에는 조건이 있다. 똑바로 연속해서 2칸 이상의 빈 칸이 존재하면 그 곳에 몸을 양 옆으로 쭉 뻗으면서 누울 수 있다. 가로로 누울 수도 있고 세로로 누울 수도 있다. 누울 때는 무조건 몸을 쭉 뻗기 때문에 반드시 벽이나 짐에 닿게 된다. (중간에 어정쩡하게 눕는 경우가 없다.) 만약 방의 구조가 위의 그림처럼 생겼다면, 가로..

[BOJ] 11728 배열 합치기 (js)
개발/알고리즘 2020. 11. 27. 23:48

문제 정렬되어있는 두 배열 A와 B가 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거나 같은 정수이다. 출력 첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다. 핵심 아이디어 언어에 따라 전략을 다르게 짜야하는데, python은 그냥 배열2개를 더해서 sorted를 해주면되고, javascript같은 경우는 시간초과가 난다. A,B가 정렬되어 있으므로 앞 원소부터 비교해가며 정답배열에 차곡차곡 쌓는 방법을 써야한다. 이때 앞 원소를 pop해주는 방식..

[BOJ] 10610 30 (js)
개발/알고리즘 2020. 11. 27. 15:52

문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 10^5개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는다면, -1을 출력하라. 핵심 아이디어 단순히 생각하면 permutation을 사용하여 30으로 나누어떨어지는 수를 만들고 그 중에서가 가장 큰 수를 구하면 될 것 같지만. n이 최대 10^5개의 숫자로 이루어져있으므로, 100000자리의 숫자가 존재하..

[BOJ] 7568 덩치 (js)
개발/알고리즘 2020. 11. 24. 23:12

const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const solution = (l) => { l = l.map(_l => { let [a, b] = _l.split(" "); return [parseInt(a), parseInt(b)]; }); const answer = [] l.forEach(_l => { let cnt = 0; l.forEach(e => { if (e[0] > _l[0] && e[1] > _l[1]) { cnt++; } }); answer.push(cnt + 1); }) console.log(answer.joi..

profile on loading

Loading...