[코딩테스트 연습] - 멀리 뛰기

2021. 5. 13. 22:59·🧇 Algorithm/프로그래머스
728x90

Level 1

 

문제 설명

효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는
(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.

 

제한 사항

  • n은 1 이상, 2000 이하인 정수입니다.

입출력 예

n result
4 5
3 3

 

나의 코드

def solution(n):
    answer = 0

    jump = {}
    jump[0], jump[1] = 1, 1

    for i in range(2, n + 1):
        jump[i] = jump[i-1] + jump[i-2]

    answer = jump[n] % 1234567
    return answer
  • 스킬체크 레벨3에 도전했다가 만난 문제! (2번은..너무 어려워서 포기..)
  • DP 문제였다.

예) n = 4, 효진이는

(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)

으로 뛰어 맨 끝 칸에 도착할 수 있다고 했다.

 

문제를 작게 나눠보자!

효진이가 뛰지 않는(0칸) 경우의 수는 1이다.

효진이가 1칸을 뛰는 경우의 수는 1이다.

효진이가 2칸을 뛰는 경우의 수는 2칸 = 1칸(1+1) + 0칸(0 + 2, 결국 2칸 뛰는 것) 으로 2이다.

효진이가 3칸을 뛰는 경우의 수는 3칸 = 2칸(2+1) + 1칸(1 + 2; 2 + 1) 으로 3이다.

 

여기서 다음 점화식을 뽑을 수 있다.

jump[0] = 1, jump[1] = 1
jump[2] = jump[1] + jump[0]
jump[3] = jump[2] + jump[1]

jump[i] = jump[i-1] + jump[i-1] # (단, i >= 2)
728x90
저작자표시 (새창열림)

'🧇 Algorithm > 프로그래머스' 카테고리의 다른 글

[프로그래머스] - 모의고사  (0) 2021.08.04
[프로그래머스] - 부족한 금액 계산하기  (0) 2021.08.04
[코딩테스트 연습] - 크레인 인형뽑기 🍫  (0) 2021.03.20
[코딩테스트 연습] - 다트 게임 🍫  (0) 2021.02.27
[코딩테스트 연습] - 비밀지도 🍫  (0) 2021.02.27
'🧇 Algorithm/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] - 모의고사
  • [프로그래머스] - 부족한 금액 계산하기
  • [코딩테스트 연습] - 크레인 인형뽑기 🍫
  • [코딩테스트 연습] - 다트 게임 🍫
soyang.
soyang.
AI/Agent/개발 지식 Archive.
  • soyang.
    소소한 코딩일지
    soyang.
  • 전체
    오늘
    어제
  • 링크

    • Github 🐾
    • 포트폴리오 📓 (리뉴얼중)
    • LinkedIn 👩🏻‍💼
  • 공지사항

    • 소소한 코딩일지
  • 블로그 메뉴

    • 방명록
    • 분류 전체보기 (183)
      • 🚩 목표 & 회고 (10)
      • 📓 Papers (10)
      • 🧇 Algorithm (44)
        • 이론 (1)
        • LeetCode (2)
        • 프로그래머스 (30)
        • 백준 (11)
      • 💻 Study (2)
        • 🤖 AI 인공지능 (3)
        • Python 파이썬 (3)
        • Docker 도커 (4)
        • 웹 (20)
        • 안드로이드 (2)
        • JAVA 자바 (1)
        • Firebase (3)
        • Linux 리눅스 (10)
      • 🍪 Projects (2)
      • 🎒 학교 (44)
        • 대학원 도비 (2)
        • 21 동계 모각코: 슈붕팥붕 (13)
        • 21 하계 모각코: 와팬호 (13)
        • 20 동계 모각코: 와팬호 (13)
      • 활동들 (16)
        • 인프런 대학생 LEAF 2기 (9)
        • 2021 Silicon Valley Online .. (7)
  • 태그

    Ai
    모각코
    목표
    알고리즘
    error
    Artificial Intelligence
    Python
    알고리즘스터디
    programmers
    인프런대학생Leaf
    백준
    노마드코더
    React
    리액트
    공부
    Gentoo
    Algorithm
    코딩테스트
    Linux
    프로그래머스
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
soyang.
[코딩테스트 연습] - 멀리 뛰기
상단으로

티스토리툴바