연습장
[백준 2309] 일곱 난쟁이 with Node.js
문제 링크 www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 풀이 let nums = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n").map(i => parseInt(i)); let arr; for (let i=0; i item !== nums[i] && item !== nums[j]); break; } } if (!!arr) break; } arr.sort((a, b) => a - b); ..
[백준 1026] 보물 with Python
문제 링크 www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 풀이 import sys n = int(sys.stdin.readline()) a = list(map(int, input().split())) b = list(map(int, input().split())) a.sort() b.sort(reverse=True) s = 0 for i in range(n): s += a[i] * b[i] print(s) S가 최솟값을 가지려면 a를 오름차순, b를..
[백준 1076] 저항 with Node.js
문제 링크 www.acmicpc.net/problem/1076 1076번: 저항 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 색은 모두 위의 표에 쓰여 있는 색만 주어진다. www.acmicpc.net 풀이 const table = { black: 0, brown: 1, red: 2, orange: 3, yellow: 4, green: 5, blue: 6, violet: 7, grey: 8, white: 9 }; const colors = require("fs").readFileSync("/dev/stdin").toString().split(/\s/); console.log((table[colors[0]]*10 + table[colors[1]]) * (10**(t..
[백준 1100] 하얀 칸 with Node.js
문제 링크 www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 풀이 const board = require("fs").readFileSync("/dev/stdin").toString().split(/\s/); let count = 0; for (let i=0; i
[백준 13458] 시험 감독 with Node.js
문제 링크 www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 풀이 const input = require("fs").readFileSync("/dev/stdin").toString().split(/\s/).map(i => parseInt(i)); const n = input[0]; const a = input.slice(1, n+1); const b = input[n+1]; const c = input[..
[백준 2902] KMP는 왜 KMP일까? with Node.js
문제 링크 www.acmicpc.net/problem/2902 2902번: KMP는 왜 KMP일까? 입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드 www.acmicpc.net 풀이 const short = require("fs").readFileSync("/dev/stdin").toString(); console.log(short.match(/[A-Z]/g).reduce((acc, i) => acc + i, "")); 정규 표현식을 사용하여 알파벳 대문자를 추출하여 하나의 문자열로 반환하였다.
[백준 14501] 퇴사 with Python
문제 링크 www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 풀이 import sys n = int(sys.stdin.readline()) tp = [] for i in range(n): tp.append(tuple(map(int, sys.stdin.readline().split()))) maximum_profit = 0 def search_maximum_profit(start, acc=0): global maximum_profit profit = acc if start < n and start+tp[start][0]-1 < n: profit += tp[start][1] for i in range..
[백준 10996] 별 찍기 - 21 with Node.js
문제 링크 www.acmicpc.net/problem/10996 10996번: 별 찍기 - 21 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 풀이 const n = parseInt(require("fs").readFileSync("/dev/stdin").toString()); let piece = "*" + " *".repeat(Math.floor((n-1)/2)) + "\n" + " *".repeat(Math.floor(n/2)); for (let i=0; i
[백준 10808] 알파벳 개수 with Node.js
문제 링크 www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 풀이 const s = require("fs").readFileSync("/dev/stdin").toString().split(""); const alphabet = "abcdefghijklmnopqrstuvwxyz"; const counts = new Array(26).fill(0); s.forEach(i => counts[alphabet.indexOf(i)]++); console.log(counts.join(" ")); a부터 z까지 나열한 문자열과 26개의 0이 담긴 배열을 만든다. 그리고..
[백준 1002] 터렛 with Python
문제 링크 www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 풀이 import sys t = int(sys.stdin.readline()) for i in range(t): x1, y1, r1, x2, y2, r2 = map(int, sys.stdin.readline().split()) d = ((x1-x2)**2 + (y1-y2)**2)**0.5 if x1 == x2 and y1 == y2 and r1 == r2: print(-1) elif d > r1 + r2: print(0) elif d == r1 + r2..