전체 글

전체 글

    [백준 2167] 2차원 배열의 합 with Python

    문제 링크 www.acmicpc.net/problem/2167 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 풀이 const input = require("fs").readFileSync("/dev/stdin").toString().trim().split(/\s/); const n = input[0]; const names = input.slice(1); let spelling = names[0].split(""); for (let i=1; i

    [백준 10773] 제로 with Python

    문제 링크 www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 풀이 import sys k = int(sys.stdin.readline()) arr = [] for i in range(k): n = int(sys.stdin.readline()) if n == 0: arr.pop() else: arr.append(n) print(sum(arr)) 0을 입력받으면 가장 마지막 요소를 제거하고(pop) 나머지는 맨 마지막에 추가(pu..

    [백준 1373] 2진수 8진수 with Node.js

    문제 링크 www.acmicpc.net/problem/1373 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 풀이 let n = require("fs").readFileSync("/dev/stdin").toString().trim(); let oct = ""; while (n.length >= 3) { oct = parseInt(n.slice(n.length-3), 2).toString(8) + oct; n = n.slice(0, n.length-3); } console.log((n ? parseInt(n, 2).toString(8) : "") + oct); 세 자리수 2진수는 최대 7까지 나타낼 수 있어서(0..

    [백준 10820] 문자열 분석 with Node.js

    문제 링크 www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 풀이 const texts = require("fs").readFileSync("/dev/stdin").toString().split("\n"); if (texts[texts.length-1] === "") texts.pop(); texts.forEach(i => { let d = ""; [/[a-z]/g, /[A-Z]/g, /\d/g, /[ ]/g].forEach(reg => d += i.mat..

    [백준 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, "")); 정규 표현식을 사용하여 알파벳 대문자를 추출하여 하나의 문자열로 반환하였다.