본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1856 : 계단 뛰어 오르기

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1856 : [기초-재귀함수] 계단 뛰어 오르기 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

int 형 정수(n) 1개가 입력된다.
(1 <= n <= 25)

출력

0 번째 계단에서 시작해서 한 번에 1개/2개/3개의 계단을 뛰어넘을 수 있을 때, n 번째 계단에 도착할 수 있는 방법의 가짓수를 출력한다.

예시

  • 입력 : 3
  • 출력 : 4

Solution (풀이)

  • 풀이 : 메모리 11304, 시간 : 77
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine());

        System.out.println(loop(count));
    }

    public static int loop(int count) {

        if (count==1) { // 남은 갯수가 1개일때는 당연히 1번
            return 1;
        } else if (count==2) { // 남은 갯수가 2개일 떄는 1번 + 1개일떄 경우의 수
            return 1 + loop(1); 
        } else  if (count==3) { // 남은 갯수가 3개 일때는 1번 + 1개일때 경우의 수 + 2개일때 경우의수
            return 1 + loop(1) + loop(2);
        } else {
            return loop(count-3) + loop(count-2) + loop(count-1); // 위 루프만큼 돌리기
        }

    }

}

Ranking(순위)

반응형