본문 바로가기

Python28

[Python] gui 프로젝트 사진 이어 붙이기 프로그램 여러 사진 파일을 선택해서 이어붙여주는 프로그램입니다. (이후 글 업데이트 예정) 2022. 7. 12.
[백준][python] 2302 극장 좌석 문제 https://www.acmicpc.net/problem/2302 2302번: 극장 좌석 주어진 조건을 만족하면서 사람들이 좌석에 앉을 수 있는 방법의 가짓수를 출력한다. 방법의 가짓수는 2,000,000,000을 넘지 않는다. (2,000,000,000 (i가 i번째 자리 그대로 오는경우) + (i가 i-1번째 자리랑 바뀐경우) 하지만 고정되어 있는 경우의 수를 생각해야 한다. 고정되어 있는 경우는 i번째가 고정되어 있을경우랑 i-1번째가 고정되어 있는 경우 둘 .. 2022. 4. 8.
[백준][python] 9009 피보나치 문제 https://www.acmicpc.net/problem/9009 9009번: 피보나치 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 수를 나타내는 정수 T 가 주어진다. 각 테스트 데이터에는 하나의 정수 n www.acmicpc.net 결과 풀이 t = int(input()) for i in range(t): n = int(input()) dp = [1, 1] a = 0 i = 2 while True: a = dp[i - 1] + dp[i - 2] if a > n: break dp.append(a) i += 1 temp = n ans = [] for j in reversed(dp): if j 2022. 3. 31.
[백준][python] 11497 통나무 건너뛰기 문제 https://www.acmicpc.net/problem/11497 11497번: 통나무 건너뛰기 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 www.acmicpc.net 결과 풀이 import sys input = sys.stdin.readline t = int(input().strip()) for i in range(t): n = int(input().strip()) l = list(map(int, input().strip().split())) l.sort() a = [] while l: a.insert(0, l.pop()) if l: a.append(l.. 2022. 3. 24.
[백준][python] 1449 수리공 항승 문제 https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 결과 풀이 n, l = map(int, input().split()) t = sorted(list(map(int, input().split()))) answer = 1 a = t[0] for i in range(1, n): if t[i] >= a+l: answer += 1 a = t[i] print(answer) 물이 새는 곳의 리스트를 정렬 해 준 뒤 '처음 구멍 + 테이프.. 2022. 3. 21.
[백준][python] 16953 A → B 문제 https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 결과 풀이 A, B = map(int, input().split()) answer = 1 while A < B: if B % 10 == 1: B //= 10 answer += 1 elif B % 2 == 0: B //= 2 answer += 1 else: answer = -1 break if B < A: answer = -1 print(answer) A 에서 B가 아닌 B에서 A로 생각한다면 쉽게 풀 수 있는 문제이다. 먼저 B의 1의자리수가 1이면 1을 제거해주는것을 우선순위로, 그 다음 짝수만 2로 나눌 수 있으.. 2022. 3. 17.
[백준][python] 2108 통계학 문제 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 결과 1번풀이 2번풀이 풀이 import sys input = sys.stdin.readline n = int(input().strip()) nums = [int(input().strip()) for _ in range(n)] nums.sort() print(round(sum(nums)/n)) print(nums[n//2]) print(max(nums) - min(nums)) 1. 산술평균 2. 중앙값 4.. 2022. 3. 15.
[백준][python] 10989 수 정렬하기 3 문제 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 결과 풀이 import sys input = sys.stdin.readline n = int(input()) a = [0] * 10001 for i in range(n): b = int(input()) a[b] += 1 for i in range(1, 10001): while a[i] != 0: print(i) a[i] -= 1 메모리제한이 있는 문제로 카운팅소트를 이용해 풀어야한다. 인덱스에 숫자마다 개수를 .. 2022. 3. 14.
[백준][python] 18870 좌표압축 문제 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 결과 풀이 n = int(input()) l = list(map(int, input().split())) d = dict() a = 0 for i in sorted(l): if i not in d: d[i] = a a += 1 for i in l: print(d[i], end = ' ') 먼저 입력값들을 sort를 통해 오름차순으로 정렬해준뒤.. 2022. 3. 14.