✨JSY
[백준] [JS] 5622_다이얼
PS/백준 2023. 9. 15. 15:29

문제 문제 출처 - https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 풀이 다이얼 정보를 담은 객체를 하나 만들어두는 것이 좋을 것 같다. const dialInfo = { // 다이얼넘버 + 시간(1초) 이 value가 됨. 'ABC' : 3, 'DEF' : 4, 'GHI' : 5, 'JKL' : 6, 'MNO' : 7, 'PQRS' : 8, 'TUV' : 9, 'WXYZ' : 10 }; 다이얼 숫자의 +1만큼이 걸리는 시간이므로, 객체를 생성하여 key값을 다이얼의 문자, value값을 걸리는 시간(다이얼의 수 + 1) 으로 ..

article thumbnail
[백준] [JS] 1152_단어의 개수
PS/백준 2023. 9. 15. 14:50

문제 문제 출처 - https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 풀이 쉬워 보이지만, 문자열이 아예 공백으로 나와버리는 경우, 1로 출력되는 문제를 해결해야 한다. 문자열이 공백인 경우를 0으로 출력할 수 있도록 예외 처리를 해준다. 코드 const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let inp..

article thumbnail
[백준] [JS] 10809_알파벳 찾기
PS/백준 2023. 9. 15. 14:45

문제 문제 출처 - https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 풀이 소문자 a의 아스키코드는 97, z는 122이므로, 이 구간을 for문으로 돌린다. 문자열.indexOf(String.fromCharCode(아스키코드)); 해당 아스키코드의 문자가 있는 위치를 indexOf 메소드로 찾아준다. 코드 const fs = require('fs'); const filePath = process.platform === 'linux'..

article thumbnail
[백준] [JS] 11654_아스키 코드
PS/백준 2023. 9. 15. 14:37

문제 문제 출처 - https://www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 - JavaScript ASCII code 참고 블로그 - https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=diceworld&logNo=220175224345 자바스크립트 아스키코드 변환하기 (charCodeAt / fromCharCode) - charCodeAt / fromCharCode 란? charCodeAt 은 문자열... blog.naver.com 이 문제..

article thumbnail
백준 10811 javascript | node.js
PS/백준 2023. 9. 12. 16:06

문제 문제 출처 - https://www.acmicpc.net/problem/10811 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 풀이 1. 최초 바구니 내부 값 부여 let arr = new Array(N).fill(1).map((a, b) => a + b);// 1 2 3 4 5 2. 주어진 범위를 for 문으로 돌려 tmpArr 에 넣고 반전시키기 3. splice를 이용해 원래 있던 것을 잘라내고 붙이기 -- 이상 절차였고, 코드에서 주석으로 설명-- 코드 const fs = require(..

article thumbnail
백준 3052 javascript | node.js
PS/백준 2023. 9. 12. 15:58

문제 문제 출처 - https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 풀이 set 는 내부 값의 중복을 허용하지 않는 것을 이용한다. map으로 42로 나눈 나머지들로 모두 바꾼 후, 이들을 set 에 넣는다. set 의 크기는 length 가 아니라 size 이다. 코드 const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let input = fs.readFileSync(filePa..

article thumbnail
백준 5597 javascript | node.js
PS/백준 2023. 9. 12. 15:51

문제 문제 출처 - https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 풀이 자료 구조 hash map 을 만든다. const map = new Map(); 그리고 있는 숫자는 1, 없는 숫자는 0이 되어 0일 때 해당 숫자를 출력하도록 한다. if (!map.has(i)) console.log(i);// if 문 조건이 hash map 에 있는 지를 판별해냄 코드 const fs = require('fs'); const filePat..

article thumbnail
백준 10813 javascript | node.js
PS/백준 2023. 9. 12. 11:05

문제 문제 출처 - https://www.acmicpc.net/problem/10813 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 풀이 fill과 map 메소드를 이용하여 1 2 ... N 까지 넣은 array를 생성한다. let arr = new Array(N)// N개의 빈 공간 생성 .fill(1)// 모두 1을 넣음 .map((a, b) => a + b);// 1, 1+1, 1+1+1, 1+1+1+1, ... 그 다음 tmp라는 변수 활용하여 수 바꾸기 tmp = arr[a - 1]; // 정수 X를..

article thumbnail
백준 10810 javascript | node.js
PS/백준 2023. 9. 12. 10:55

문제 문제 출처 - https://www.acmicpc.net/problem/10810 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net 풀이 공이 들어있지 않은 바구니는 0을 출력하므로, 바구니 안 공의 기본값은 0으로 한다. 처음에 모두 0이 들어있는 배열을 생성하고, for 문을 돌려 순서대로 바구니에 값을 넣는다. 코드 const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; ..