방명록
- [레벨2] 멀리 뛰기2023년 05월 22일 09시 15분 30초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12914
처음에는 1, 2를 사용해 리스트(배열)의 합이 n이 되는 모든 경우의 수를 찾는 것이라는 개념에서부터 출발했다. 그래서 작성한 코드는 아래와 같다.
# Python from itertools import product def solution(n): numbers = [1, 2] # 사용할 숫자 리스트 target_sum = n # 목표 합 result_list = [] # 1 또는 2가 들어가서 합이 n이 되는 모든 조합 찾기 for r in range(1, target_sum + 1): for case in product(numbers, repeat=r): if sum(case) == target_sum: result_list.append(list(case)) return len(result_list) % 1234567
위 코드로 테스트 케이스는 문제없이 통과했는데 제출하니 시간 초과가 발생했다. 좀 더 고민해 보니 DP 알고리즘에 관한 문제였고 피보나치수열과 같은 방식으로 풀이하여 통과할 수 있었다. 파이썬 코드와, 자바스크립트 코드는 각각 아래와 같다.
# Python def solution(n): if n == 1: return n a, b = 1, 2 for _ in range(n-2): a, b = b, (a+b) % 1234567 return b
// Javascript function solution(n) { if (n == 1) return n; let a = 1; let b = 2; for (const _ of Array.from({ length: n - 2 }, (_, i) => i)) { temp = a; a = b; b = (temp + b) % 1234567; } return b; }
728x90반응형'CS > 코딩 테스트' 카테고리의 다른 글
[레벨1][파이썬] 숫자 짝궁 (0) 2023.07.17 [레벨2] [3차] n진수 게임 (0) 2023.07.15 [레벨1][자바스크립트] 공원 산책 (0) 2023.04.18 [레벨1][파이썬] 공원 산책 (0) 2023.04.17 [알고리즘][파이썬] 백준_10866_덱 (0) 2022.01.09 다음글이 없습니다.이전글이 없습니다.댓글