연습장/백준(BOJ) 문제풀이

    [백준 1012 - Node.js] 유기농 배추

    [백준 1012 - Node.js] 유기농 배추

    🔗 문제 링크 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net ✏️ 풀이 const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const iterator = input[Symbol.iterator](); const offset = [[0, 1], [1, 0], [0, -1], [-1, 0]]; const output = []; const dfs = (star..

    [백준 2573 - Node.js] 빙산

    [백준 2573 - Node.js] 빙산

    🔗 문제 링크 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net ✏️ 풀이 const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const [N, M] = input.shift().split(' ').map(Number); const iceberg = input.map(v => v.split(' ').map(Number)); const off..

    [백준 1260 - Node.js] DFS와 BFS

    [백준 1260 - Node.js] DFS와 BFS

    🔗 문제 링크 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net ✏️ 풀이 const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const [N, M, V] = input.shift().split(' ').map(Number); const edges = input.map(v => v.split(' ').map(..

    [백준 16234 - Node.js] 인구 이동

    [백준 16234 - Node.js] 인구 이동

    🔗 문제 링크 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net ✏️ 풀이 const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const [N, L, R] = input.shift().split(' ').map(Number); const land = input.map(v => v.split(' ').map(Number)); cons..

    [백준 1707 - Node.js] 이분 그래프

    [백준 1707 - Node.js] 이분 그래프

    🔗 문제 링크 https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net ✏️ 풀이 const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const K = +input.shift(); const SET_A = 1; const SET_B = 2; const dfs = (start, graph, visited) => { visited[start] = SET_A..

    [백준 1520 - Node.js] 내리막길

    [백준 1520 - Node.js] 내리막길

    🔗 문제 링크 https://www.acmicpc.net/problem/1520 1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net ✏️ 풀이 const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const [M, N] = input.shift().split(' ').map(Number); const map = input.map(v => v.split(' ').map(Number)); const offset = ..

    [백준 11725 - Node.js] 트리의 부모 찾기

    [백준 11725 - Node.js] 트리의 부모 찾기

    🔗 문제 링크 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net ✏️ 풀이 const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const N = +input.shift(); const edges = input.map(v => v.split(' ').map(Number)); const tree = [...Array(N + 1)].map(() => []); const relations = []; edges.for..

    [백준 2644 - Node.js] 촌수계산

    [백준 2644 - Node.js] 촌수계산

    🔗 문제 링크 https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net ✏️ 풀이 const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const n = +input.shift(); const [person1, person2] = input.shift().split(' '); const m = +input.shift(); const r..

    [백준 16236 - Node.js] 아기 상어

    [백준 16236 - Node.js] 아기 상어

    🔗 문제 링크 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net ✏️ 풀이 const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const N = +input.shift(); const water = input.map(v => v.split(' ').map(Number)); const fishCount = []; let babySharkPo..

    [백준 2583 - Node.js] 영역 구하기

    [백준 2583 - Node.js] 영역 구하기

    🔗 문제 링크 https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net ✏️ 풀이 const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); const [M, N, K] = input[0].split(' ').map(Number); const paper = [...Array(M)].map(() => Array(N).fill(false)); ..