자바스크립트19 BigInt 큰 숫자 다루기 코딩 테스트 문제를 풀다보면 큰 숫자를 다룰 때가 있다. 자바스크립트는 최대 9007199254740991까지 정확한 숫자를 다룰수 있다 아래 코드를 실행시켜 보면 결과를 다르게 나타나 있다. console.log(9007199254740991 + 10); console.log(9007199254740991 + 20); console.log(9007199254740991 + 30); 해결법(결론) BinInt를 사용해주는 것이다. 사용법은 BigInt(숫자나 문자)처럼 사용해주거나 1231231231n처럼 마지막에 n 을 붙여주면 된다. console.log(9007199254740991n + 10n); console.log(9007199254740991n + 20n); console.log(900719.. 2023. 4. 12. 배열에서 유효한 index인지 검사 편하게 하기 지금까지 index 검사는 아래처럼 했음 if(nx = n || ny = m) return; 하지만 밑에처럼 간략하게 가능 어차피 접근할 수 없는 배열은 undefined를 반혼하니깐 이것도 간편해서 좋을 듯 if(!park[nx] || !park[nx][ny]) break; 2023. 4. 5. 백트래킹 Javascript DFS 문제 풀이를 보다 보면 dfs로 탐색을 하다가 탐색이 끝나면 방문 했던 노드나, 값을 취소하는 코드가 있는데 예를 들어 아래 코드의 경우 울타리를 세울수 있는 경우 울타리를 세우고 dfs 탐색을 한 다음 끝나면 울타리를 제거하고 for 문을 계속 돌아준다. 나는 지금까지 책 풀이를 볼 때 이런 경우 백트래킹이라고 딱히 명시를 안해줘서 이런 경우는 그냥 이렇게 풀어야 되는구나로 알고 있었는데 이런 풀이가 백 트래킹이란 것을 오늘 알았다. 백트래킹이란? 해결책을 구하기 위해, 후보군을 구하다가, 해당 후보군이 문제의 조건을 만족하지 않으면, 다시 이전의 상태로 돌아가 다른 후보군을 찾는 기법이다. map에서 빈 곳일때(0) 울타리를 세우는(1) 과정이다. dfs 탐색을 하여 해당 함수가 끝나면 울타리.. 2023. 4. 3. [14502] 연구소 Javascript https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 옛날에 책 보고 풀던시절 몇 번을 풀어도 이해가 안갔는데 지금은 풀린다 답지랑 풀이가 비슷하다 이코테 책으로 풀어서 zeroSum, reduce 함수는 그냥 따로 써봤다. 한번 직접 사용해 볼겸 0의 갯수를 세는 거는 아무렇게나 해도 됨 원본 코드 const fs = require('fs'); const PATH = process.platform === 'linux' ? '/dev/stdin' : './bae.. 2023. 4. 1. 이전 1 2 3 4 5 다음