[백준/JS] 1620 나는야 포켓몬 마스터 이다솜
문제링크 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 문제풀이 2021.08.02 - [알고리즘 공부/hashmap , 자료구조] - 백준 1620번 with Kotlin # hash 맵 과 list 동시에 사용 백준 1620번 with Kotlin # hash 맵 과 list 동시에 사용 입력 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 ..
[백준/JS] 1966 프린터큐
문제링크 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제풀이 주요한 아이디어는 [인덱스, 우선순위] 이렇게 배열의 형태로 큐에 집어 넣은것이다. (사실 배열로 만들어서 큐라고 할 수없지만..) const fs = require("fs"); BOJkey = 0; let input = fs .readFileSync(BOJkey ? "./자바스크립트로/1966/input.txt" : "./dev/stdin") .toString() .trim() .split("\n"); let testCaseNumber = inp..
[백준/JS] 1935 후위표기식2
문제링크 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 아스키코드 자바스크립트에서 아스키코드 값을 알아내기 위해서는 charCodeAt 메소드를 사용한다. s="AB" s.charCodeAt(i) 그렇다면 아스키코드 값을 문자열로 변경할때는 어떻게 할까? 다음과 같이 fromCharCode 메소드를 사용한다. String.fromCharCode(아스키코드 변수) 소수점 자리수 정해주기 소숫점을 정해주기 위해서는 toFixed() 메소드를 사용한다. toFixed(2) = 둘째자리까지 를 의미한다...
[백준/JS] 1874 스택 수열
문제링크 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제풀이 const fs = require("fs"); BOJkey = true; let input = fs .readFileSync(BOJkey ? "./자바스크립트로/1874/input.txt" : "./dev/stdin") .toString() .trim() .split("\n"); let result = []; let n = input[0]; let stack = ..
[백준/JS] 1185 요세푸스 문제
문제링크 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제사항 요세푸스문제 클래스 큐를 구현해서 풀고 있는데 , 메모리초과가 계속 나네요. 그런데 이유를 정말 모르겠습니다. 로직은 환형큐를 사용해서 K번째가 아닌 수는 큐에 다시 넣어주는 방식으로 구현했습니다. N이 7이고 K가 3일때 [1, 2, 3, 4, 5, 6, 7] -> [3, 4, 5, 6, 7, 1, 2] => 3 삭제 [4, 5, 6, 7, 1, 2] -> [6, 7, 1, 2, 4, 5] => 6 삭제 [7, 1, 2, 4, 5] -> [2, 4, 5, 7, 1] => 2 삭제 [4, 5, 7, 1] -> [7, 1, 4, 5] =..
자바스크립트 정규표현식 g 옵션의 비밀
여러분 안녕하세요. 자바스크립트 정규표현식에서 g 옵션에는 비밀이 숨겨져있다는 것 아시나요? 저는 이 비밀을 알아내기 위해 머리가 깨져버렸답니다. 도저히 모르겠어서 백준에 질문을 드려봤습니다. 그랬더니 어떤분께서 엄청 자세하게 답변을 달아주셨습니다. 정말 감사합니다. 앞으로의 글은 문제답변내용을 공부한 것 입니다. 문제답변 글 읽기 - 자바스크립트 정규표현식 질문입니다. 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net RegExp에서의 lastIndex란 틀린 원인을 알기 위해 먼저 RegExp(정규 표현식 객체) 의 lastIndex 속성을 알아봅시다. lastIndex 속성은 정규 표현식에서 매칭을 어디까지 했는지를 저장하기 위한 속성이며, 초기 값은 0입니다. 정규 표현식에 전역 ..
[백준/JS] 10845 큐
문제링크 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 방금 자바스크립트로 큐를 구현하는 것을 공부했는데 적용하기 위해서 문제를 풀어봐야겠다. 애먹었던점 아무리 생각해도 돌아가야되는 코드인데 돌아가지가 않았다. split 할때 trim을 우선으로 해주었더니 가능했다.아마 빈 공백이 섞여있었나보다. let arr = input[i].trim().split(" "); 문제풀이 class Queue { constructor() { this.elements = {}; this.head = 0; thi..
[백준/JS] 2867 FBI
FBI 성공다국어 한국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 0.25 초 (추가 시간 없음) 128 MB 6939 3323 2880 48.298% 문제 5명의 요원 중 FBI 요원을 찾는 프로그램을 작성하시오. FBI요원은 요원의 첩보원명에 FBI가 들어있다. 입력 5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다. 출력 첫째 줄에 FBI 요원을 출력한다. 이때, 해당하는 요원이 몇 번째 입력인지를 공백으로 구분하여 출력해야 하며, 오름차순으로 출력해야 한다. 만약 FBI 요원이 없다면 "HE GOT AWAY!"를 출력한다. 이상한 점 이 문제 아무리 생각해도 맞는 거 같은데 계속 틀려서 결국 해답을 봐버렸다. ..
[백준/JS] 2671 잠수함식별
잠수함식별 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 5541 2149 1563 39.291% 문제 일반적으로 잠수함 엔진이 작동할 때에 나오는 소리는 잠수함의 종류에 따라서 다르다고 한다. 우리는 물속에서 들리는 소리의 패턴을 듣고서 그 소리가 특정한 잠수함에서 나오는 소리인지 아닌지를 알아내려고 한다. 이 문제에서는 잠수함의 소리가 두 종류의 단위 소리의 연속으로 이루어져 있고, 그 단위 소리를 각각 0과 1로 표시한다. 또, 한 특정한 소리의 반복은 ~로 표시한다. 예를 들어 x~는 x가 한번 이상 반복되는 모든 소리의 집합을 말하고, (xyz)~는 괄호 안에 있는 xyz로 표현된 소리가 한번 이상 반복되는 모든 소리의 집합을 말한다. 다음의 예를 보라. 1~ = {1,..
프로그래머스/JS 신고결과받기 (1)
배운점 빈 배열 자바스크립트에서 0으로된 빈배열을 생성하기 위해서는 다음 처럼 Array를 생성한다. const answer = new Array(id_list.length); // [ ] 그 다음 fill 메소드를 사용하여 0을 채워주는 것이다. answer.fill(0); //[ 0, 0, 0, 0 ] const 배열 , 객체 나는 const로 선언을 하면 절대 바꿀 수 없다고 생각했다. 그런데 그게 아니였다. const 는 재선언을 할 수 없는 것이다. 배열의 pop push , 객체의 키값 추가 모든 것이 가능했다. 아예 잘 못이해하고 있었다. const report_list = {}; id_list.map((user) => { report_list[user] = []; }); console.lo..