본문 바로가기

백준

[백준18870-silver2] 좌표 압축 (javascript) https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net [풀이] 📌 좌표압축 ? 만약 x축의 좌표가 [0 ,1 ,2 ,3 ,100 ,150]과 같이 주어졌을 때, 0~3은 각 1씩 차이라 크게 문제 되지 않지만 100과 150을 탐색하기 위해서는 100까지, 150까지 탐색해야하는 문제점이 있다. 다시말해 4~99, 101~149는 쓰지 않는데 탐색하고 있는 시간낭비를 하고 있는 것이다. 숫자의 갭차.. 더보기
[백준2751-silver5] 수 정렬하기 2 (javascript) https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net [풀이] let fs = require('fs'); let [n, ...input] = fs.readFileSync('/dev/stdin').toString().trim().split('\n'); input.sort((a, b) => a - b); console.log(input.join('\n')); 📌 여기서 주의할점은! sort() js 내부함수 사용할 시 숫자 배열 정렬은 무조건.. 더보기
[BOJ-10845_silver4] 큐 (자바스크립트) https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net [유형] - 자료구조 - 큐 [문제 풀이] 명령어를 판단할 배열요소는 temp에 넣고 "출력" 명령시 새로운 변수에 넣어준다 한줄에 하나씩 출력해줌! [코드] ||❌ 시간초과 난 코드 const fs = require('fs'); let [n, ...input] = fs.readFileSync('./input.txt').toString().trim().split('\n'); let.. 더보기
[BOJ-11866_silver5]요세푸스 문제 0 (자바스크립트) https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net [유형] - 구현 - 자료 구조 - 큐 [풀이] K 번째를 제거하면서 배열에 넣어줌 대략 아래 처럼 [코드 풀이] const fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().trim().split(' '); const n = +input[0]; // string -> number const k = +input[1]; let ans = []; //n 길이의 1~n 배열 생성 let arr = Array.. 더보기
[BOJ-24511_silver3] queuestack (javascript) https://www.acmicpc.net/problem/24511 24511번: queuestack 첫째 줄에 queuestack을 구성하는 자료구조의 개수 $N$이 주어진다. ($1 \leq N \leq 100\,000$) 둘째 줄에 길이 $N$의 수열 $A$가 주어진다. $i$번 자료구조가 큐라면 $A_i = 0$, 스택이라면 $A_i = 1$이다. 셋째 줄 www.acmicpc.net [유형] - 자료구조 - 스택 - 덱 - 큐 [풀이] N = 4 : 자료구조 4개 A = 0 1 1 0 : 각 자료구조의 종류 === Queue 혹은 Stack !! (문제에도 적혀있다 ....) B = 1 2 3 4 : 현재 각 자료구조에 들어있는 수 M = 3 : 넣을 수의 갯수 C = 2 4 7 : 넣을 수 x.. 더보기
[BOJ-17413_silver3] 단어 뒤집기2 (javascript) https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net [문제 유형] - 구현 - 자료 구조 - 문자열 - 스택 [풀이] 문자열 뒤집기 여기서 예외는 태그 안에 있는 문자열은 뒤집지 않는다. 하나하나 케이스 그려보면서 해보면 이해됨! [코드 풀이] const fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().tri.. 더보기
[BOJ-10773-Siver4]제로 (javascript) https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net [유형] - 스택 [문제] [풀이] K 숫자 입력 받고 K 갯수대로 숫자들 입력받기 0이 나오면 pop() ... 마지막 배열에 남은 숫자들 더하면 끝 [코드 풀이] // 파일 불러오기 -> fs모듈 let fs = require('fs'); let input = fs.readFileSync('./input.txt').toString().split('\n'); /.. 더보기
[1152][백준_브론즈2] 단어의 개수 - JavaScript https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 배열로 받은 string의 length 만 찍으면 되는 쉬운 문제 일 줄 알았는데 오잉?ㅇ? 틀림 ## 처음 푼 풀이 const fs = require('fs'); const input = fs.readFileSync('./input.txt').toString().trim().split(' '); console.log(input.length); => 반례 !! ' ' 공백을 입력받았을 때 1.. 더보기
[2562][백준_브론즈3] 최댓값 - JavaScript https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 자바스크립트로 백준 문제 풀려면 입력과 출력의 코드를 알아야한다 여간 귀찮은게 아니다 .. 나는 코드 에디터로 vscode 를 사용중이기 때문에 이런식으로 입력 받은 글자들을 input.txt 에 적은 다음 Node.js 환경에서 파일 시스템 모듈인 fs를 사용하여 파일을 읽어들이는 코드를 사용하여야 한다 const fs = require('fs'); const i.. 더보기
[1260][java][백준]DFS와BFS 알고리즘 분류 그래프 이론 그래프 탐색 너비 우선 탐색 깊이 우선 탐색 풀이 테스트 케이스 대로 숫자를 입력받으면 어떤 그래프가 나오는지 보겠습니다. 테스트 케이스 상으로는 노드 1 부터 시작하게 됩니다. DFS: 1 - 2 - 4 - 3 BFS: 1 - 2 - 3 - 4 * 간선들의 연결이 되어 있는지 혹은 되지 않았는 것을 판단하는 것이 인접행렬을 이용하거나, 혹은 인접리스트를 이용하는 것이 좋습니다. 1) 인접 행렬 1번 꼭지점이 n번 꼭지점과 연결이 되어 있으면 1로 처리, 연결이 되어있지 않은 선은 0으로 처리 단점> 꼭지점의 갯수(Vertex)가 적을 때만 가능하다는 점. 갯수가 많아질수록 탐색 시간이 오래 걸림 2) 인접리스트 자신의 노드에서 갈 수 있는 노드를 가지고 있다고 생각하면 쉽습니.. 더보기

반응형