[백준/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] 1918 후위표기식
문제링크 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 문제풀이 표기법 변환부분을 복습하였다. 2022.06.29 - [공부기록/자바스크립트 코딩테스트] - 중위표기법 후위표기법 변환 중위표기법 후위표기법 변환 중위표기법 중위표기법이란 우리가 흔히 쓰는 A + B 와 같이 연산자를 피연산자의 가운데에 표기하는 방법이다. 후위표기법 후위표기법은 컴퓨터가 연산을 처리할때 사용되는 방식인데, 피연산 ehddud100677.tistory.com 그리고 이 코드를 참조하였다. https://velog.io/@en..
[백준/JS] 2493 탑
문제링크 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 문제풀이 문제풀이는 다음 블로그 글을 참고하였다. https://jjangsungwon.tistory.com/44 [ 백준 2493 ] 탑 - Python 문제 보기 이 문제는 Stack 문제이다. 처음에는 완전 탐색 방식으로 구현하였는데, 역시나 시간 초과가 발생하였다. 예제로 주어진 6, 9, 5, 7, 4를 오른쪽부터 읽는 것이 아니라 왼쪽부터 읽는 방법 jjangsungwon.tistory.com 이분의 아이디어를 사용했고, 나의 로직과 조금 ..
[백준/JS] 2800 괄호제거
문제링크 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net 문제풀이 제게 너무 힘든문제였습니다. 참고한 블로그입니다. 조눅's 괴발개발 [백준] 괄호 제거 문제링크 괄호 제거 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 2016 680 499 33.512% 문제 어떤 수식이 주어졌을 때, 괄호를 제거해서 나올 수 있는 서로 다른 식의 개수를 계산 guard1000.github.io 인간디버거의로그찍기 BOJ - 괄호 제거 2800번 (python) ..
[백준/Python] 2346 풍선 터뜨리기
문제링크 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 문제풀이 자바스크립트로 풀다가 메모리가 계속 터져서 아마 deque을 구현해야할텐데, 실제 코테에서 그러고 있으면 광탈 확정이기 때문에 파이썬으로 풀었습니다. 자바스크립트도 로직은 맞을겁니다. 진짜로요. const fs = require("fs"); BOJkey = 0; let input = fs .readFileSync(BOJkey ? "./자바스크립트로/2346/input.txt" : "./dev/stdin") .toString()..
자바스크립트 in 연산자
참고자료 이글은 제로초님의 유튜브영상을 보고 정리한 글입니다. in 연산자 여러분은 in 연산자를 자바스크립트를 사용할때 어떻게 사용하시나요? 저는 위 질문을 들었을때 for in 문이 딱 생각이 났습니다. const h = {hello: "cat", hi: "zerocho", 1: 3, true: false}; for (const k in h) { console.log(k); } // 1 // hello // hi // true if 안에도 in을 사용할 수 있는데요. 다음 처럼 말이죠. 제가 사용할 수 있는 것에는 객체의 키값이 존재하는지 아닌지 정도일 것 같네요. 파이썬의 if in 문과 비슷한 것 같습니다. 파이썬은 string도 if in을 쓸수 있지만요. 자바스크립트에서는 includes를 사..
자바스크립트 중괄호 괄호의 기능
참고자료 이글은 제로초님의 유튜브영상을 보고 정리한 글입니다. 중괄호{ }의 기능 다음 코드를 보겠습니다. 어떤 숫자가 콘솔에 찍히게 될까요? let b = "5"; { let b = "3"; } console.log(b); 답은 5 입니다. 간단한 스코프(Scope) 개념인데요. { } 중괄호안에서 선언된 b는 중괄호 스코프(Scope)안에서 존재하기 때문입니다. 여기서 배운 것은 if, for, function, while 이 가지는 scope 뿐만아니라, 그냥 { } 중괄호만 있어도 스코프를 가질 수 있다라는 것입니다. if(){ } for(){ } function() { } while() { } { } 괄호( ) 의 기능 여러분은 함수를 즉시 실행시키고 싶으실때는 어떻게 하시나요? 이미 질문속에 ..
npx 이란?
갑자기 공부하다가 npx 이란 명령어에 대해 궁금해졌다. npm 의 오타같은 npx는 어떤 목적을 가지는 명령어일까? npx npm 5.2버전부터, npx가 기본 패키지로 제공되기 시작했다. npx 또한 모듈의 일종인데, 이 모듈은 npm 을 통해 패키지를 로컬에 설치해야만 실행을 할 수 있던 문제점에 대한 해결책이 될 수 있었다. 매번 패키지의 최신 버전을 불러와 실행시킨 후에 그 파일이 없어지는 방식으로 모듈이 돌아간다. npx가 효과적인 경우 CRA 같은 보일러플레이트 모듈이 효과적이다. 해당 보일러 플레이트는 업데이트가 잦다. 따라서 npx를 사용하기 적합하다. 항상 최신의 버전을 사용할 수 있기 때문이다. 따라서, npx를 사용하기 적합할 때는 해당 패키지가 잦은 업데이트를 갖는 패키지일 경우이..
[백준/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] 10799 쇠막대기
문제링크 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 문제풀이 설명을 어떻게 해야할지.. 이 문제를 왜 스택으로 접근했냐하면, 괄호를 보기만 하면 스택으로 생각하게 되네요. 열린괄호는 쇠 막대기가 들어옴을 의미한다. 그래서 count++ 한다. 그리고 stack에 저장한다. 레이저를 만나면 쇠막대기가 등분된다. 이때 현재 stack의 length가 막대기의 갯수를 의미한다. 예를 들어 3개가 들어있을 경우 레이저를 만난다면 6개로 나누어진다! 그러므로 막대기의 갯수를 += 해주면 된다. 여기서 나는 razerCheck..