kokoball의 devlog
article thumbnail
백준 1922 네트워크 연결 (node.js)
WEB/백준 문제 풀이 2024. 6. 17. 12:38

문제https://www.acmicpc.net/problem/11724 문제 해석이 문제는 크루스칼 알고리즘을 활용해 MST(최소스패닝트리)를 생성하는 문제이다.Union-find 알고리즘을 활용해 집합을 대표하는 원소 변경과 사이클을 생성하지 않으면서 MST를 생성해 주면 된다. DisjointSet class를 만들어서 그 안에 union, find, connected 메서드를 만들어서 해결하였다.처음 생성자에서 갯수에 맞는 숫자 배열을 생성 후 COST 순으로 정렬된 가중치를 따라서 부모를 변경해 주면 된다.풀이const filePath = process.platform === "linux" ? "dev/stdin" : "../test.txt";const input = require("fs").re..

article thumbnail
[모던 자바스크립트 Deep Dive] 10 ~ 12장

10장 - 객체 리터럴객체란?JS는 객체기반 프로그래밍 언어이며, 구성하는 거의 "모든 것"이 객체이다.- 원시 타입은 단 하나의 값, 객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조이다.- 원시타입은 변경 불가능한 값, 객체는 변경 가능한 값이다.- 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 key와 value로 구성된다.- js의 함수는 일급 객체 값으로 취급한다.var count = { num: 0, // 프로퍼티 : 객체의 상태를 나타내는 값 increase: function() { // 메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작 this.num++; }};  객체 리터럴에 의한 객체 생성JS는 프로토타입 기반 객체지향 언어..

article thumbnail
백준 11724 연결 요소의 개수 (node.js)
WEB/백준 문제 풀이 2024. 6. 13. 00:17

문제https://www.acmicpc.net/problem/11724 문제 해석이 문제 또한 그래프 이론 중 BFS로 쉽게 풀 수 있다.그래프의 앞 뒤가 구분되지 않기 때문에, 앞과 뒤 모두 각 배열에 추가해주고 한번 지나간 곳을 체크해 주는 방식으로 풀면 된다.풀이const filePath = process.platform === "linux" ? "dev/stdin" : "../test.txt";const input = require("fs").readFileSync(filePath).toString().trim().split("\n");function solution(input) { const [N, M] = input.shift().split(" ").map(Number); const lin..

article thumbnail
백준 2606 바이러스 (node.js)
WEB/백준 문제 풀이 2024. 6. 12. 01:34

문제https://www.acmicpc.net/problem/2606문제 해석이 문제는 BFS로 쉽게 풀 수 있다.다만, 그래프의 앞 뒤가 구분되지 않기 때문에 둘다 추가하는 방식으로 풀어야한다. 풀이const filePath = process.platform === "linux" ? "dev/stdin" : "../test.txt";const input = require("fs").readFileSync(filePath).toString().trim().split("\n");function solution(input) { const qty = Number(input.shift()); const pair = Number(input.shift()); const computers = input.map(..

article thumbnail
백준 16637 괄호 추가하기 (node.js)
WEB/백준 문제 풀이 2024. 6. 11. 18:28

문제https://www.acmicpc.net/problem/2667문제 해석이 문제는 그래프 이론 카테고리에 있으며 BFS로 풀 수 있다.2중 반복문을 통해 모든 배열을 순회 하지만 그 위치에 집이 있는경우 BFS를 통해 먼저 값을 정답 배열에 추가해주고, grid 값을 0으로 바꿔주면 된다. 풀이const filePath = process.platform === "linux" ? "dev/stdin" : "../test.txt";const input = require("fs").readFileSync(filePath).toString().trim().split("\n");function solution(input) { const N = Number(input.shift()); const grid ..

article thumbnail
백준 16637 괄호 추가하기 (node.js)
WEB/백준 문제 풀이 2024. 6. 7. 23:40

문제https://www.acmicpc.net/problem/16637문제 해석이 문제는 입력 제한부터 완전탐색의 냄새가 났다. (1 관건은 재귀 조건이였는데 문제에 힌트가 있었다. 자세히 봐야하는 조건은 중첩된 괄호는 사용할 수 없다인데 이 조건으로 인해 계산시 고려해야 하는 부분은 지금 계산하고 있는 부분과 그 다음 부분까지만 고려하면 되었다. 이를 현재 위치와 남은 길이를 비교하여 새로운 재귀 조건을 추가해 주었다. 풀이const filePath = process.platform === "linux" ? "dev/stdin" : "../test.txt";const input = require("fs").readFileSync(filePath).toString().trim().split("\n");c..

article thumbnail
백준 31863 내진설계 (node.js)
WEB/백준 문제 풀이 2024. 6. 6. 11:14

문제https://www.acmicpc.net/problem/31863 문제 해석이 문제는 BFS로 해결하였다. 먼저 본진에 대해 뻗어나가며 해당 위치의 지진 횟수를 하나 증가 후 큐에 위치를 저장하였고,큐에서 하나씩 꺼내며, 해당 위치에 지진 횟수를 바탕으로 건물이 무너지게 되는지 판단하였다.그 후 건물이 무너지면 해당 위치로부터 여진을 전파하는 방식으로 해결하였다. 직관적인 x,y 좌표 설정을 위해 class도 같이 사용해 주었다. 풀이const filePath = process.platform === "linux" ? "dev/stdin" : "../test.txt";const input = require("fs") .readFileSync(filePath) .toString() .trim()..

article thumbnail
[모던 자바스크립트 Deep Dive] 6 ~ 9장

6장 - 데이터 타입자바스크립트의 데이터 타입의 종류 - 원시타입 vs 객체 타입 원시 타입Number : 숫자 정수 실수 구분 없이 하나의 숫자 타입 | Infinity, -Infinity, NaN..String : 문자열 타입Bollean : 논리적 참(true)과 거짓(false)undefined 타입 : var 키워드로 선언된 변수에 암묵적으로 할당되는 값null 타입 : 값이 없다는 것을 의도적으로 명시할 때 사용하는 값symbol 타입 : 변경 불가능한 원시 타입의 값이며 다른 값과 중복되지 않는 유일 무이한 값객체객체, 함수, 배열    ==> JS는 객체 기반의 언어이며, 자바스크립트를 이루고 있는 거의 모든 것이 객체 숫자 타입자바스크립트는 하나의 숫자 타입만 존재하며 다른 언어의 int..

728x90