[Python] 백준 알고리즘 온라인 저지 2693 N번째 큰 수 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 처음 문제를 접했을 땐 순열로 출력하면 되겠다고 생각하였다. 백트래킹 알고리즘을 잘 알지 못해 같이 소개하며 두 가지 방법 모두 풀이해보려고 한다. 알고리즘 분류 백트래킹 소스코드 1 (permutation) from itertools import permutations n, m = map(int, input().split()) ..
[Python] 백준 알고리즘 온라인 저지 2693 N번째 큰 수 https://www.acmicpc.net/problem/2693 2693번: N번째 큰 수 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000 www.acmicpc.net 쉬어가는 차원에서 쉬운 문제를 풀이해 보았다. 단순한 정렬과 인덱스 선택 출력 문제였다. 알고리즘 분류 정렬 소스코드 import sys input = sys.stdin.readline n = int(input()) for i in range(n): arr = list(map(int, input().spli..
[Python] 백준 알고리즘 온라인 저지 2225 합분해 https://www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제 이해는 오래 걸리지 않았다. 예를 들면 인풋이 20 2 일 때 1+19, 2+18... 같은 경우의 수의 개수를 구해야 한다. 알고리즘 분류 다이내믹 프로그래밍 수학 소스코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) dp = [[0] * 201 for _ in range(201)] for i in range(1, 201): dp[1][i] = i for i in range(2..
[Python] 백준 알고리즘 온라인 저지 1699 제곱수의 합 https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 어떠한 수 N이 합하여 N이 될 때 가장 큰 제곱수 자신보다 작은 수를 하나씩 늘리며 제곱해보면 찾을 수 있다. 알고리즘 분류 다이내믹 프로그래밍 소스코드 import sys input = sys.stdin.readline n = int(input()) dp = [k for k in range(..
[Python] 백준 알고리즘 온라인 저지 1912 연속합 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 연속되는 수의 합이 가장 큰 값을 구하는 문제로 더해져 온 값과 비교하는 코드를 작성해야 한다. 알고리즘 분류 다이내믹 프로그래밍 소스코드 import sys input = sys.stdin.readline n = int(input()) nums = list(map(int, input().split())) dp = [nums[0]] for i in ..
[Python] 백준 알고리즘 온라인 저지 13305 주유소 https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 한 방향(왼쪽에서 오른쪽)으로 도시를 이동해야 하므로 리터 당 가격을 비교하며 이동하는 방법으로 풀이했다. 요즘 기름 값이 비싸긴 하다... 알고리즘 분류 그리디 알고리즘 소스코드 import sys input = sys.stdin.readline n = int(input()) dist = list(map(int, inpu..