[백준/JS] 5052 전화번호 목록
문제링크: https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 문자열 + 배열 정렬 + 해쉬맵 으로 푼 문제이다. 프로그래머스에 비슷한 문제가 있었던 것 같다. 나는 해쉬맵에 번호를 저장하고, 다음 전화번호를 digit 하나씩 더하면서 합친 문자열이 해쉬맵에 있는지 확인하는 로직으로 문제를 해결했다. 위와 같은 로직을 사용하기위해서는 1. 우선 테스트 케이스 정렬을 해야한다. 1-1. 정렬하지 않는다면 91125426 , 9..
[백준/JS] 1026 보물
문제 링크: https://www.acmicpc.net/problem/1026 배열 문제이다. 1. 한쪽 배열은 asc 로 정렬한다. 2. 나머지 배열은 desc로 정렬한다. 3. 두배열의 인덱스를 0 ~ N 까지 곱하여 더한다. const fs = require('fs'); BOJkey = false; let input = fs .readFileSync(BOJkey ? './javascript/1026/input.txt' : './dev/stdin') .toString() .trim() .split('\n') .map(el => el.split(' ').map(Number)); const [N] = input.shift(); ascArr = input.shift().sort((a, b) => a - b..
[백준/JS] 1449 수리공 항승
문제링크: https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 그리디 문제이다. 프로그래머스에 똑같은 문제가 있다. 1. 수리해야하는 위치가 담긴 배열을 오름차순으로 정렬한다. 2. 테이프가 붙여진 위치를 저장한다. 2-1. 수리해야하는 위치가 [1, 2, 3, 4] 이고 테이프의 길이가 3(L) 이라고 하자. 테이프는 1(처음만난 수리지점) 부터 붙여나가야한다. 2-2. 이때 해당 테이프로 1 ,2 ,3 의 위치까지 커버가 가능하..
[백준/JS] 2661 좋은 수열
문제 링크: https://www.acmicpc.net/problem/2661 2661번: 좋은수열 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다. www.acmicpc.net 백트레킹 문제였다. 1. dfs 를 사용하여 '1', '2', '3' 문자를 추가한다. 2. 좋은 수열인지 아닌지 판별한다. (checkDuplicate) 2-1. 예를 들어 123123 이라는 값이 들어왔다고 가정을 해보자. 2 3 31 23 123 123 맨뒤 인덱스-1 부터 에서 수열의 길이 / 2 까지 구간을 나누어 확인을 한다. 2-2. 위 방법을 사용할때 좋은 수열이 아닌 값들은 pru..
throw new Error 를 try-catch로 잡아주기
다음처럼 throw new Error를 통해서 에러를 만들어 주었다면 try-catch에서 잡아주는 것이 당연하다. 나는 왜 바보
자바스크립트 hasOwnProperty 쓰는 이유
https://mygumi.tistory.com/330 Javascript: hasOwnProperty 쓰는 이유 :: 마이구미 이 글은 자바스크립트 객체의 네이티브 메소드 중 하나인 hasOwnProperty 를 다룬다. 간혹 코드에서 사용하는 모습을 경험했을 것이다. 언제 써야하는지? 왜 쓰는지? 에 의문을 가지고 있다면 이 글 mygumi.tistory.com 위 글을 읽고 공부하여 작성한 글입니다. 자세한 내용은 위 자료를 참고해주세요. function Dog(name, breed, color, sex) { this.name = name; this.breed = breed; this.color = color; this.sex = sex; } console.log(theDog.toString());..
자바스크립트의 인스턴스(Instance)란?
참고자료 Javascript의 인스턴스(Instance)란? 비슷한 성질을 가진 여러개의 객체를 만들기 위해, 일종의 설계도라고 할 수 있는 생성자 함수(Constructor)를 만들어 찍어내듯 사용하는데 이렇게 생성된 객체를 인스턴스라 부를 수 있다.좀 더 알 velog.io 위 자료를 타이핑하며 공부한 글입니다. 자세한 내용은 위 자료를 참고해주세요. 비슷한 성질을 가진 여러개의 객체를 만들기 위해, 일종의 설계도라고 할 수 있는 생성자 함수(Constructor)를 만들어 찍어내듯 사용하는데 이렇게 생성된 객체를 인스턴스라 부를 수 있다. 위 글의 글쓴이님은 칼 만드는 과정에 비유하셨는데, 생성자함수(Constructor) = 거푸집 인스턴스 = 거푸집으로 찍어낸 칼 function Sword(co..
[코테강의/JS] 동전교환
동전교환 다음과 같이 여러 단위의 동전들이 주어져 있을때 거스름돈을 가장 적은 수의 동전으로 교환 해주려면 어떻게 주면 되는가? 각 단위의 동전은 무한정 쓸 수 있다. ▣ 입력설명 첫 번째 줄에는 동전의 종류개수 N(1 { if (S > limit) return; if (S === limit) { minn = Math.min(minn, L); } else { for (let i = 0; i { if (S ..
[코테강의/JS] 중복순열
1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 중복을 허락하여 M번을 뽑아 일렬로 나열 하는 방법을 모두 출력합니다. ▣ 입력설명 첫 번째 줄에 자연수 N(3
[코테강의/JS] 최대점수 구하기
배운점 자바스크립트에서 최대값 , 최소값을 구해야할때 초깃값을 어떻게 설정해주는 것이 좋을까? 더보기 let min = Number.MAX_SAFE_INTEGER // 9007199254740991 let max = Number.MAX_SAFE_INTEGER // -9007199254740991 문제풀이 const fs = require("fs"); BOJkey = 1; let input = fs .readFileSync(BOJkey ? "./코딩테스트강의/섹션8/input.txt" : "./dev/stdin") .toString() .trim() .split("\n") .map((v) => v.split(" ").map((v) => +v)); let [N, limit] = input.shift(); l..