본문 바로가기

백준33

백준 1268번 : 임시 반장 정하기 (Python) 출처 : https://www.acmicpc.net/problem/1268 n = int(input()) stu = [] for i in range(n) : stu.append(list(map(int, input().split()))) same = [0] * n for i in range(n-1) : already = [] for j in range(5) : for k in range(i+1, n) : if stu[i][j] == stu[k][j] : if k not in already : same[i] += 1 same[k] += 1 already.append(k) else : pass sol = same.index(max(same)) + 1 print(sol) 먼저 학생들의 정보를 저장할 빈 리스트 .. 2022. 10. 24.
백준 1026번 : 보물 (Python) 출처 : https://www.acmicpc.net/problem/1026 n = int(input()) a = list(map(int, input().split())) b = list(map(int, input().split())) a.sort() b.sort(reverse=True) answer = 0 for i in range(n) : answer += a[i] * b[i] print(answer) 배열 $A$와 $B$에 속한 $n$개의 숫자들을 각각 $a_{1} \leq a_{2} \leq \cdots \leq a_{n}$, $b_{1} \leq b_{2} \leq \cdots \leq b_{n}$ 이라고 하자. 이때 문제에서 구하고자 하는 최솟값을 구하기 위해서는 가장 작은 $a_{1}$과 가장.. 2022. 10. 20.
백준 1010번 : 다리 놓기 (Python) 출처 : https://www.acmicpc.net/problem/1010 t = int(input()) for i in range(t) : n, m = map(int, input().split()) n1 = 1 m1 = 1 for i in range(1, n+1) : n1 = n1 * i for j in range(m-n+1, m+1) : m1 = m1 * j print(int(m1/n1)) 복잡하게 생각할 필요 없이 오른쪽 m개의 사이트 중 n개의 다리를 선택하면 된다. 어떻게 선택되든 왼쪽과 오른쪽의 사이트는 제일 위에서부터 순서대로 다리가 놓인다. 파이썬에서는 조합을 구하는 함수가 따로 없기 때문에 분자에는 (m - n + 1) 부터 m까지 곱한 값을, 분모에는 1부터 n까지 곱한 값을 구해서 계.. 2022. 10. 19.
백준 1978번 : 소수 찾기 (Python) 출처 : https://www.acmicpc.net/problem/1978 n = int(input()) nums = list(map(int, input().split())) prime = 0 for i in nums : prime_j = 1 # 특정 숫자가 소수인지 표시하는 변수 root_i = int(i**(1/2)) + 1 for j in range(2, root_i) : # 2부터 제곱근까지 차례로 나눠서 if i % j == 0 : # 소수가 아니면 prime_j = 0을 넣어서 소수가 아님을 체크 prime_j = 0 break prime += prime_j # 소수임이 확인되면 prime 값에 1을 더해줌 print(prime - nums.count(1)) # 1은 소수로 계산되므로 1의 개.. 2022. 10. 17.