DS & Algorithm

    [프로그래머스] 거리두기 확인하기

    [프로그래머스] 거리두기 확인하기

    문제 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 코드 function solution(places) { const w = 5; const h = 5; function checkDistance(x, y, place) { const [dx..

    [백준] 1541번 잃어버린 괄호 - JavaScript(NodeJS)

    문제 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 코드 function sol(input) { const numbers = input.split("-").map((str) => str.split("+") .map(Number) .reduce((s, v) => s + v, 0) ); let answer = 2 * numbers[0] - numbers.reduce((s, v) => s + v, 0); return answer; } require("readline") .createInterface(proc..

    [백준] 2108번 통계학 - JavaScript(NodeJS)

    [백준] 2108번 통계학 - JavaScript(NodeJS)

    문제 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 코드 function sol(input) { let answer = ""; const N = +input[0]; const numbers = input .slice(1) .map(Number) .sort((a, b) => a - b); answer += `${Math.round(numbers.reduce((s, v) => s + v, 0) / N)}\n`; answer += `${numbers[Math.floor(N / 2)]}\n`; const map = new Map..

    [백준] 2231번 분해합 - JavaScript(NodeJS)

    문제 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 코드 function sol(input) { let answer = 0; const len = input.length; const N = +input; const min = input - len * 9; for (let i = min; i s + v, 0); if (num === N) { answer = +str; break; } } return answer; } require("readline") .createInterface..

    [백준] 3055번 탈출 - JavaScript(NodeJS)

    문제 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 코드 const sol = (input) => { let answer = 0; const [R, C] = input[0].split(" ").map(Number); const map = input.slice(1).map((str) => str.split("")); const check = Array(R) .fill() .map((_) => Array(C).fill(0)); let D, S; let water = []; for (let i = 0; i < R; i++) ..

    [백준] 1316번 그룹 단어 체커 - JavaScript(NodeJS)

    문제 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 코드 function sol(input) { let answer = 0; const n = +input[0]; for (let i = 1; i { input.push(line); }) .on("close", () => { console.log(sol(input)); process.exit(); }); 풀이 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. ccazzzzbb는 c,..