본문 바로가기

분류 전체보기55

백준 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.
프로그래머스 행렬의 덧셈 (Python) https://school.programmers.co.kr/learn/courses/30/lessons/12950 def solution(arr1, arr2) : answer = [] for i in range(len(arr1)) : answer_r = [] for j in range(len(arr1[i])) : answer_r.append(arr1[i][j] + arr2[i][j]) answer.append(answer_r) return answer numpy 라이브러리를 사용하면 간단하지만, 프로그래머스에서는 사용할 수 없다. 따라서 행과 열로 쪼개서 더해야 한다. 행 번호(i)가 같을 때 열 번호(j)가 같은 성분끼리 더해 answer_r 이라는 리스트를 만들고, answer_r을 합쳐 answer.. 2022. 10. 19.
프로그래머스 멀리 뛰기 (Python) https://school.programmers.co.kr/learn/courses/30/lessons/12914 def solution(n) : answer = [1, 1] for i in range(2, n+1) : answer.append(answer[-1] + answer[-2]) return answer[-1] % 1234567 피보나치 수열을 출력하는 문제이다. n칸을 뛰기 위해서는 (n - 1)칸을 뛴 후 1칸을 더 뛰거나, (n - 2)칸을 뛴 후 2칸을 더 뛰면 된다. 초기값을 넣은 answer라는 리스트를 만들고, n번째 값에 도달할 때까지 가장 끝의 두 값을 더해 append 함수로 추가하는 방식의 코드를 작성했다. 2022. 10. 19.