저 많은 사람 중에 '나'

    [백준/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] =..

    [백준/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] 2671 잠수함식별

    [백준/JS] 2671 잠수함식별

    잠수함식별 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 5541 2149 1563 39.291% 문제 일반적으로 잠수함 엔진이 작동할 때에 나오는 소리는 잠수함의 종류에 따라서 다르다고 한다. 우리는 물속에서 들리는 소리의 패턴을 듣고서 그 소리가 특정한 잠수함에서 나오는 소리인지 아닌지를 알아내려고 한다. 이 문제에서는 잠수함의 소리가 두 종류의 단위 소리의 연속으로 이루어져 있고, 그 단위 소리를 각각 0과 1로 표시한다. 또, 한 특정한 소리의 반복은 ~로 표시한다. 예를 들어 x~는 x가 한번 이상 반복되는 모든 소리의 집합을 말하고, (xyz)~는 괄호 안에 있는 xyz로 표현된 소리가 한번 이상 반복되는 모든 소리의 집합을 말한다. 다음의 예를 보라. 1~ = {1,..

    [백준/JS] 1264 모음의 개수

    [백준/JS] 1264 모음의 개수

    문제링크 1264번: 모음의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 영어 대소문자, ',', '.', '!', '?', 공백으로 이루어진 문장이 주어진다. 각 줄은 최대 255글자로 이루어져 있다. 입력의 끝에는 한 줄 www.acmicpc.net 배운점 i - 대소문자 구분안함 정규표현식 match - 해당 문자열을 모두 찾아서 배열로 나타내어줌. 문제풀이 const fs = require("fs"); BOJkey = true; var input = fs .readFileSync(BOJkey ? "./자바스크립트로/1264/input.txt" : "./dev/stdin") .toString() .trim() .split("\n"); let regex = new RegExp(..

    [백준/JS] 1543 문서검색

    문제링크 배운점 동적변수로 정규표현식을 만들때 백틱을 사용하여 다음과 같이 정규식을 만들어주면 된다. const strr = input[1]; let regex = new RegExp(`${strr}`, "g"); let a = input[0].match(regex); 문제풀이 try catch를 사용한 이유는 정규표현식으로 걸러지는 문자가 없는경우에 length 메소드를 사용하면 에러가 발생한다. 따라서 catch문 이 동작할때에는 0을 출력한다. const fs = require("fs"); BOJkey = 1; var input = fs .readFileSync(BOJkey ? "./자바스크립트로/1543/input.txt" : "./dev/stdin") .toString() .trim() .spl..

    [백준/JS] 2941 크로아티아 알파벳

    크로아티아 알파벳 성공다국어 한국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 105557 46704 39717 44.725% 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 ..

    백준 14888번 파이썬

    백준 14888번 파이썬

    연산자 끼워넣기 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 54975 28879 18236 49.416% 문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식..

    백준 선수과목 파이썬

    백준 선수과목 파이썬

    선수과목 (Prerequisite) 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 5 초 256 MB 1714 1141 872 66.413% 문제 올해 Z대학 컴퓨터공학부에 새로 입학한 민욱이는 학부에 개설된 모든 전공과목을 듣고 졸업하려는 원대한 목표를 세웠다. 어떤 과목들은 선수과목이 있어 해당되는 모든 과목을 먼저 이수해야만 해당 과목을 이수할 수 있게 되어 있다. 공학인증을 포기할 수 없는 불쌍한 민욱이는 선수과목 조건을 반드시 지켜야만 한다. 민욱이는 선수과목 조건을 지킬 경우 각각의 전공과목을 언제 이수할 수 있는지 궁금해졌다. 계산을 편리하게 하기 위해 아래와 같이 조건을 간소화하여 계산하기로 하였다. 한 학기에 들을 수 있는 과목 수에는 제한이 없다. 모든 과목은 매 학기 항상 개설된..

    백준 15657번 with Kotlin N과M(8)

    N과 M (8) 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 512 MB 8068 6853 5795 85.296% 문제 N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 출력 한 줄에 하나씩 문제의 조건을 만족하는..