![전체 글](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
전체 글
[백준 1780] 종이의 개수 with Node.js
문제 링크 https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. www.acmicpc.net 풀이 const input = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n"); const n = +input[0]; const paper = input.slice(1).map(v => v.split(" ").map(vv => +vv)); const countPaper = n => { const c..
[백준 1992] 쿼드트리 with Node.js
문제 링크 https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 풀이 const input = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n"); const n = +input[0]; const screen = input.slice(1).map(v => v.split("").map(vv => +vv)); const genQuadTree = n => { const..
[백준 2630] 색종이 만들기 with Python
문제 링크 https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 풀이 def count_paper(n): count = [0, 0] def recursion(n, x, y): total = sum([paper[y+yy][x+xx] for yy in range(n) for xx in range(n)]) if total == 0: count[0] += 1 elif total == n*n: count[1] += 1 else: n..
[백준 10994] 별 찍기 - 19 with Python
문제 링크 https://www.acmicpc.net/problem/10994 10994번: 별 찍기 - 19 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 풀이 def add_star(ptn): return "* " + ptn + " *" def star(n): if n == 1: return ["*"] else: return ["*"*(4*n-3), "*"+" "*(4*n-5)+"*"]\ + list(map(add_star, star(n-1)))\ + ["*"+" "*(4*n-5)+"*", "*"*(4*n-3)] print("\n".join(star(int(input())))) n이 1 커질 때 마다 위 아래로 두 줄씩 규칙적인 모양이 붙고, 기존 모양 양 옆에 "*..
[백준 6603] 로또 with Python
문제 링크 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 풀이 import sys def print_combination(n, S): T = [False for _ in range(len(S))] C = [] C_lst = [] def get_combination(): if len(C) == n: C_lst.append(" ".join(map(str, C))) else: for i in range(len(S)-1, -1, -1): ..
[백준 2448] 별 찍기 - 11 with Python
문제 링크 https://www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 풀이 def top(x): blank = " " * ((len(x[0]) + 1) // 2) return [blank + i + blank for i in x] def bottom(x): return [i + " " + i for i in x] def star(n): if n == 3: return [" * ", " * * ", "*****"] n //= 2 x = star(n) return top(x) + bottom(x) for i i..
[백준 2630] 색종이 만들기 with Node.js
문제 링크 https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 풀이 const input = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n") const n = +input[0]; const paper = input.slice(1).map(v => v.split(" ")); const size = [128, 64, 32, 16, 8, 4, 2, ..
[백준 1004] 어린 왕자 with Node.js
문제 링크 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 풀이 const input = require("fs").readFileSync("dev/stdin").toString().trim().split(/\s/); let idx = 0; const answer = []; const T = +input[idx++]; for (let i=0; i +v); idx += 4; const n = +input[idx++]; for (let..
[백준 11053] 가장 긴 증가하는 부분 수열 with Python
문제 링크 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 풀이 import sys N = int(sys.stdin.readline()) seq = list(map(int, sys.stdin.readline().split())) dp = [seq[0]] def binary(dp, n): low = 0 high = len(dp)-1 while low n: high = ..
[백준 10974] 모든 순열 with Node.js
문제 링크 https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 const N = +require("fs").readFileSync("/dev/stdin").toString().trim(); let answer = []; function f(nums, permutation) { if (nums === "") answer.push(permutation.split("").join(" ")); else { for (let i=0; i