본문 바로가기

c언어 스터디/HackerRank

[HackerRank] Utopian Tree

Utopian Tree | HackerRank

 

Utopian Tree | HackerRank

Predict the height of the tree after N growth cycles.

www.hackerrank.com

 

<문제>

 

봄에는 height가 2배로 늘어나고, 여름에는 1m만큼 늘어난다.
Utopian Tree는 봄에 심어진다고 할 때, n번의 성장 이후에 키를 출력하는 문제이다.

input: 첫번째 줄에는 총 테스트할 개수를 입력받는다. 
다음 줄에는 첫번째 줄에서 입력한 개수만큼 cycle의 수를 입력한다.

output: 각 테스트마다 최종 height를 순서대로 출력한다.

 

 

<코드>

int utopianTree(int n) {
    int height = 0;
    if(n==0){
        height = 1;
    }
    else{
        for(int i=0;i<=n;i++){
            if(i%2==0){
                height+=1;
            }
            else{
                height = height*2;
                }
        }
    }
    return height;

}

 

<풀이>

이 함수는 매개변수로 cycle의 수인 n을 넘겨받는다. 먼저 if 구문을 이용해 만약 n이 0이면 height는 그대로 1을 리턴하고, n이 0이 아니면 i는 0부터 n까지 반복하여 height의 크기를 바꾸었다.
만약 i가 2로 나누어 떨어지면 여름이라는 뜻이므로 height에 1만큼 더했고, 만약 i가 2로 나누어 떨어지지 않으면 봄이라는 뜻이므로 height에 2를 곱했다.

마지막으로 height값을 리턴하여 문제를 풀 수 있었다.

 

<실행결과>

 

'c언어 스터디 > HackerRank' 카테고리의 다른 글

[HackerRank] Left Rotation  (0) 2021.08.05
[HackerRank] Drawing Book  (0) 2021.07.27
[HackerRank] Print in Reverse  (0) 2021.07.27
[HackerRank] Sales by Match  (0) 2021.07.22
[HackerRank] Strong Password  (0) 2021.07.22