수학3 [알고리즘] 프로그래머스 | 숫자의 표현 숫자의 표현 답: 더보기 def solution(n): count = 1 for number in range(1, n // 2 + 2): result = 0 for num in range(number, n): result += num if result == n: count += 1 break elif result > n: break return count 문제 분석 및 해석 자연수 n이 주어질 때, 연속하는 수를 더해 n이 나오는 가짓수 구하기 ex) n = 15 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 >> 풀이생각 일단 자기 자신 count + 1 1 ~ n-1까지.. 1로 시작해 2~ 차례로 더하도록 하기 : for문? 1부터 배열? 혹은.. 2023. 8. 24. [알고리즘] 프로그래머스 | 피보나치 수열 피보나치 수열이란? 수학에서 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. 처음 여섯 항은 각각 1, 1, 2, 3, 5, 8이다. 편의상 0번째 항을 0으로 두기도 한다 프로그래머스 문제에 의하면 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수를 말한다 다음 수를 만들때 이전 수와 자기자신을 더하는 방식이므로 재귀가 가능하다! 문제를 풀기 전에 피보나치 수열을 구하는 7가지 방법을 알아보자! 1) 일반 함수 구현 2) 재귀 함수 구현 3) 제네레이터 (Generator) 방식 4) 메모이제이션 (Memoizatioin) 방식 5) 파이썬 한줄.. 2023. 8. 19. [알고리즘] 프로그래머스 | 행렬의 곱셈 행렬의 곱셈 답: 더보기 def solution(arr1, arr2): answer = [] n1 = len(arr1) n2 = len(arr2[0]) for i in range(n1): num_list = [] for k in range(n2): number = 0 for j in range(len(arr1[0])): number += arr1[i][j] * arr2[j][k] num_list.append(number) answer.append(num_list) return answer 문제 분석 및 해석 이차원배열 arr1, arr2 arr1에 arr2를 곱한 결과를 반환하는 함수, solution 반환 >> 풀이생각 for문을 여러번 사용하여 arr1의 행과 arr2의 열을 곱하고 더하는 식을 만든.. 2023. 8. 16. 이전 1 다음