본문 바로가기

문제 풀이/[BaekJoon]88

[BaekJoon] 15663 N과 M(9) (Silver 2) - Python 문제 N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수 중에서 M개를 고른 수열 입출력 예시 입력: 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 출력: 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 입력예시1) 3 1 4 4 2 출력예시1) 2 4 입력예시2) 4 2 9 7 9 1 출력예시2) 1 7 1 9 7 1 7 9 9 1 9 7 9 9 입력예시3) 4 4.. 2023. 1. 9.
[BaekJoon] 11725 트리의 부모 찾기 (Silver 2) - Python 문제 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입출력 예시 입력: 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력: 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. 입력예시1) 7 1 6 6 3 3 5 4 1 2 4 4 7 출력예시1) 4 6 1 3 1 4 입력예시2) 12 1 2 1 3 2 4 3 5 3 6 4 7 4 8 5 9 5 10 6 11 6 12 출력예시2) 1 1 2 3 3 4 4 5 5 6 6 코드 import sys input = sys.stdin.readline sys... 2023. 1. 9.
[BaekJoon] 11053 가장 긴 증가하는 부분 수열 (Silver 2) - Python 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입출력 예시 입력:첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력:첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 입력예시1) 6 10 20 10 30 20 50 출력예시1) 4 코드 N = int(input()) num = list(map(int, input().split())) dp = [1 fo.. 2023. 1. 9.
[BaekJoon] 15657 N과 M (8) (Silver 3) - Python 문제 N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 입출력 예시 입력:첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 출력:한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사.. 2023. 1. 9.
[BaekJoon] 15654 N과 M(5) (Silver 3) - Python 문제 N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 입출력 예시 입력: 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 출력: 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 입력예시1) 3 1 4 5 2 출력예시1) 2 4 5 입력예시2) 4 2 9 8 7 1 출력예시2) 1 7 1 8 1 9 7 1 .. 2023. 1. 9.
[BaekJoon] 15652 N과 M (4) (Silver 3) - Python 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 입출력 예시 입력: 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력: 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 입력예시1) 3 1 출력예시1) 1 2 3 입력예시2) 4 2 출력예시2) 1 1 1.. 2023. 1. 9.
[BaekJoon] 15650 N과 M (2) (Silver 3) - Python 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 입출력 예시 입력: 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력: 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 입력예시1) 3 1 출력예시1) 1 2 3 입력예시2) 4 2 출력예시2) 1 2 1 3 1 4 2 3 2 4 3 4 입력예시3) 4 4 출력예시3) 1 2 3 4 코드 N, M = map(int, input().s.. 2023. 1. 9.
[BaekJoon] 2407 조합 (Silver 3) - Python 문제 nCm을 출력한다. 입출력 예시 입력: n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) 출력: nCm을 출력한다. 입력예시1) 100 6 출력예시1) 1192052400 코드 n, m = map(int, input().split()) a, b = 1, 1 for i in range(n, n - m, -1): a *= i for i in range(1, m + 1, 1): b *= i print(a // b) 실행 화면 채점 결과 2023. 1. 9.
[BaekJoon] 16236 아기상어 (Gold 3) - Python 문제 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다. 아기 상어가 어디로 이동할지 결정하는 방법은 아래와 같다. 더 이상 먹을 수 있는 물고기가 공간에 없다면 아기 상어는 엄마.. 2023. 1. 9.
[BaekJoon] 1992 쿼드트리 (Silver 1) - Python 문제 흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드 트리(Quad Tree)라는 방법이 있다. 흰 점을 나타내는 0과 검은 점을 나타내는 1로만 이루어진 영상(2차원 배열)에서 같은 숫자의 점들이 한 곳에 많이 몰려있으면, 쿼드 트리에서는 이를 압축하여 간단히 표현할 수 있다. 주어진 영상이 모두 0으로만 되어 있으면 압축 결과는 "0"이 되고, 모두 1로만 되어 있으면 압축 결과는 "1"이 된다. 만약 0과 1이 섞여 있으면 전체를 한 번에 나타내지를 못하고, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 이렇게 4개의 영상으로 나누어 압축하게 되며, 이 4개의 영역을 압축한 결과를 차례대로 괄호 안에 묶어서 표현한다 위 그림에서 왼쪽의 영상은 오른쪽의 배열과 같이 숫자로 주어지며, 이 영상을 .. 2023. 1. 9.
[BaekJoon] 1016 제곱 ㄴㄴ 수 (Gold 1) - Python 문제 어떤 정수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 그 수를 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수가 몇 개 있는지 출력한다. 입출력 예시 입력: 첫째 줄에 두 정수 min과 max가 주어진다. 출력: 첫째 줄에 min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수의 개수를 출력한다. 제한 1 ≤ min ≤ 1,000,000,000,000 min ≤ max ≤ min + 1,000,000 입력예시1) 1 10 출력예시1) 7 입력예시2) 15 15 출력예시2) 1 입력예시3) 1 1000 출력예시3) 608 코드 MIN, MAX = map(int, input().split()) resul.. 2023. 1. 9.
[BaekJoon] 3009 네 번째 점 (Bronze 3) - Python 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입출력 예시 입력: 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력: 직사각형의 네 번째 점의 좌표를 출력한다. 입력예시1) 5 5 5 7 7 5 출력예시1) 7 7 입력예시2) 30 20 10 10 10 20 출력예시2) 30 10 코드 x = dict() y = dict() result = [] for i in range(3): a, b = map(int, input().split()) if a in x.keys(): x[a] += 1 else: x[a] = 1 if b in y.keys(): y[b] += 1 else: .. 2023. 1. 6.
728x90