Algorithm 문제 풀이 썸네일형 리스트형 [python] 백준 10972번 다음 순열 https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 💻 코드 import sys input = sys.stdin.readline n = int(input()) array = list(map(int, input().split())) for i in range(n - 1, 0, -1): # 뒤에서부터 탐색 if array[i - 1] < array[i]: # 앞의 숫자가 뒤의 숫자보다 더 크면 for j in range(n - 1, 0, -1): # 뒤에서부터 탐색 if array[i - 1] < array[j.. 더보기 [python] 백준 2309번 일곱 난쟁이 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 💻 코드 import sys input = sys.stdin.readline dwarf = [int(input()) for _ in range(9)] temp1, temp2 = 0, 0 for i in range(9): for j in range(i + 1, 9): if sum(dwarf) - (dwarf[i] + dwarf[j]) == 100: temp1 = dwarf[i] temp2 = dwarf[j].. 더보기 [python] 백준 17087번 숨바꼭질 6 https://www.acmicpc.net/problem/17087 17087번: 숨바꼭질 6 수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이 www.acmicpc.net 💻 코드 import sys import math input = sys.stdin.readline a = [] result = [] n, s = map(int, input().split()) a = list(map(int, input().split())) for i in range(n): result.append(abs(s - a[i])) print(math.gcd.. 더보기 [python] 백준 1158번 요세푸스 문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 💻 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) circle = [] result = [] for i in range(1, n + 1): circle.append(i) temp = k - 1 for _ in range(n): if len(circle) > temp: result.append(circle.pop(temp)) temp += k - 1 else: temp = temp % len(circle).. 더보기 [python] 백준 9095번 1, 2, 3 더하기 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 💻 코드 import sys input = sys.stdin.readline T = int(input()) d = [0] * 100 d[1] = 1 d[2] = 2 d[3] = 4 for _ in range(T): n = int(input()) for i in range(4, n + 1): d[i] = d[i - 1] + d[i - 2] + d[i - 3] print(d[n]) 📝 풀이 저번에 풀었던 2 X n 타일링 문제와 거의 같다. 푸는 방법은 똑같았고 점화식만 아주 살짝 바꿔주면 된다. .. 더보기 [python] 백준 9613번 GCD 합 https://www.acmicpc.net/problem/9613 9613번: GCD 합 첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진 www.acmicpc.net 💻 코드 import sys import math input = sys.stdin.readline t = int(input()) for _ in range(t): sum_gcd = 0 num = list(map(int, input().split())) n = num[0] for i in range(1, n): for j in range(2, n + 1): if i < j: .. 더보기 [python] 백준 10845번 큐 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 💻 코드 import sys from collections import deque input = sys.stdin.readline n = int(input()) queue_list = deque([]) for _ in range(n): command = input() if 'push' in command: num = command[5:] queue_list.append(num) i.. 더보기 [python] 백준 11727번 2 X n 타일링 2 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 💻 코드 import sys input = sys.stdin.readline d = [0] * 100001 def rectangle_count(x): d[1] = 1 d[2] = 3 for i in range(3, x + 1): d[i] = d[i - 1] + (d[i - 2] * 2) return d[x] n = int(input()) print(rectangle_count(n) % 10007) 📝 풀이 이 문제는 저번에 풀.. 더보기 이전 1 2 3 4 5 6 다음