Programming/C C++

Drawing Book

[ , 1] ▷ [2 , 3] ▷ [4, 5] ▷ .... 식으로 페이지가 체크되어 있는 책에서 원하는 페이지에 도달하기까지 넘겨야 할 최소의 페이지 수를 구하는 코드를 작성해야 한다.

int pageCount(int n, int p) {
    int count =0;
    int p_count = p/2;
    int l_count;
    if(n%2 == 0){
        if(p%2 == 0){
            l_count = (n-p)/2;
        }
        else{
            l_count = (n-p)/2 + 1;
        }
    }
    else{
        l_count = (n-p)/2;
    }
    count = (p_count >= l_count)?l_count:p_count;
    return count;
}

△ 작성한 부분

 

1페이지 부터 넘기는 경우(p_count)와 가장 마지막 페이지(n)에서부터 넘기는 경우(l_count)를 나눠 더 작은 값을 리턴해줘야 한다.

l_count의 경우, 가장 마지막으로 기록된 페이지의 값이 홀수인지 짝수인지에 따라 계산을 다르게 해야 한다.

SMALL

'Programming > C C++' 카테고리의 다른 글

[DS] Get Node Value  (0) 2020.10.04
Counting Valleys  (0) 2020.10.04
[DS] Reverse a doubly-linked list  (0) 2020.09.27
[DS] Delete a Node  (0) 2020.09.20
Migratory Birds  (0) 2020.09.20