알고리즘 문제 풀이37 프로그래머스 행렬의 덧셈 (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. 백준 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. 이전 1 ··· 5 6 7 8 9 10 다음