본문 바로가기
반응형

프로그래밍 공부/파이썬 알고리즘 공부18

(백준 파이썬) 2693번 풀이. N번째 큰 수 1. 문제 https://www.acmicpc.net/problem/2693 2693번: N번째 큰 수 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000 www.acmicpc.net 2. 풀이 # sort 함수 # 2693 n = int(input()) l = [] for i in range(n): A = list(map(int, input().split())) A.sort() l.append(A[-3]) for i in range(n): print(l[i]) 2022. 1. 9.
(백준 파이썬) 2609번. 최대공약수와 최소공배수 1. 문제 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 2. 풀이 # 유클리드 호제법 멋있다! # 2609 a,b = map(int,input().split()) def GCD (a,b): while b != 0: a,b = b,a % b return a def LCM (a,b): return a * b // GCD(a,b) print(GCD(a,b)) print(LCM(a,b)) 2022. 1. 9.
(백준 파이썬) 2309번. 일곱난쟁이 1. 문제 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 2. 풀이 # list.remove(a): list 안에 있는 a값을 없애는 것 (index를 활용하는 것이 아님) # 2309 T = 9 list = [] while T > 0: n = int(input()) list.append(n) T = T-1 sum = 0 for i in range(len(list)): sum +=list[i] for i in range(9): for j in rang.. 2022. 1. 9.
(백준 파이썬) 10870번. 피보나치 수 5 1. 문제 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 2. 풀이 # 재귀 함수 사용 # 10870 n = int(input()) def fibo(n): if n == 0: return 0 elif n == 1: return 1 else: return fibo(n-1) + fibo(n-2) print(fibo(n)) 2022. 1. 9.
(백준 파이썬) 2460번. 지능형 기차 1. 문제 링크 https://www.acmicpc.net/problem/2460 2460번: 지능형 기차 2 최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 2. 풀이 # 2460 list = [] T = 10 a = 0 b = 0 while T > 0: m, n = map(int, input().split()) a -= m a += n list.append(a) T -= 1 list.sort() print(list[-1]) 2022. 1. 9.
(백준 파이썬) 10818번. 최소, 최대 1. 문제 링크 https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 2. 풀이 # 10818 # 2022-01-08 n = int (input()) m = list(map(int,input().split())) print(min(m),max(m)) 2022. 1. 9.
(백준 파이썬) 3460번. 약수 구하기 1. 문제 https://www.acmicpc.net/problem/3460 3460번: 이진수 양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다. www.acmicpc.net 2. 풀이 # bin 사용하지 않고 풀었기에 다소 복잡할 수 있음. # 3460 # 2022-01-08 T = int(input()) while T > 0: n = int(input()) array = [] while n > 0: if n % 2 == 1: if n == 1: array.append(1) break array.append(1) n = (n-1) // 2 elif n % 2 ==0: a.. 2022. 1. 9.
(백준 파이썬) 2501번. 약수 구하기 1. 문제 링크 https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 2. 풀이 ### 2501 # 2022-01-08 # 입력 N,K = map(int,input().split()) # 코드 # 빈 리스트 생성 div = [] # 약수를 div에 넣기 (자동으로 오름차순 정렬됨) for i in range(1,N+1): if N % i == 0: div.append(i) # k번째로 작은 수 출력 if len(div) < K: print(0) else: print(div[K-1]) 2022. 1. 9.
반응형