연습장
[백준 1436] 영화감독 숌 with Node.js
문제 링크 www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 풀이 const n = +require("fs").readFileSync("/dev/stdin").toString() let num = 666; let count = 1; while (count !== n) { num++; if (String(num).includes("666")) count++; } console.log(num); num을 1씩 늘려가면서 num내에 연속된 666이 존재할 때마다 ..
[백준 1018] 체스판 다시 칠하기 with Node.js
문제 링크 www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이 const [n, m, ...board] = require("fs").readFileSync("/dev/stdin").toString().trim().split(/\s/); const lines = ["WBWBWBWB", "BWBWBWBW"] let min = 64; for (let i=0; i
[백준 2108] 통계학 with Python
문제 링크 www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 풀이 import sys n = int(sys.stdin.readline()) lst = [0 for x in range(8001)] for i in range(n): lst[int(sys.stdin.readline())+4000] += 1 # 산술평균 print(round(sum([(x-4000)*lst[x] for x in range(8001)])/n)) # 중앙값 a, b, mid = 0, 0, n//2+1 if lst[0] >=..
[백준 10814] 나이순 정렬 with Node.js
문제 링크 www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 풀이 const [n, ...members] = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n"); console.log( members .map(v => ({age: parseInt(v.split(" ")[0]), name: v.split(" ")[1]})) .sort((a, b) => a.age - b.age) .map(v =..
[백준 11650] 좌표 정렬하기 with Node.js
문제 링크 www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 풀이 const [n, ...coords] = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n"); console.log( coords .map(v => ({x: parseInt(v.split(" ")[0]), y: parseInt(v.split(" ")[1])})) .so..
[백준 10815] 숫자 카드 with Python
문제 링크 www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 풀이 import sys n = int(sys.stdin.readline()) n_lst = list(map(int, sys.stdin.readline().split())) m = int(sys.stdin.readline()) m_lst = list(map(int, sys.stdin.readline().split())) def binary_search(lst, n): l..
[백준 7568] 덩치 with Node.js
문제 링크 www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 풀이 const [n, ...arr] = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n"); const men = arr.map((v, i) => ({weight: v.split(" ")[0], height: v.split(" ")[1], rank: 1})); for (let i=0; i
[백준 1181] 단어 정렬 with Node.js
문제 링크 www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀이 const [n, ...words] = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n"); Array.from(new Set(words)) .sort((a, b) => a > b ? 1 : (a a.length - b.length) .forEach(i =..
[백준 11866] 요세푸스 문제 0 with Python
문제 링크 www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 풀이 import sys n, k = map(int, sys.stdin.readline().split()) lst = [x for x in range(1, n+1)] permutation = [] idx = 0 while lst: idx += k - 1 if idx >= len(lst): idx %= len(lst) deleted = lst[idx] lst.remove(deleted) permutation.append(deleted) print("") 1부터 n까지 담긴 리스트를 만들..
[백준 1427] 소트인사이드 with Node.js
문제 링크 www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 const arr = require("fs").readFileSync("/dev/stdin").toString().trim().split("").map(i=>parseInt(i)); const nums = Array(10).fill(0); arr.forEach(i => nums[9-i] += 1); let sorted = ""; for (let i=0; i