본문 바로가기
Algorithm/문제풀이

[HackerRank] Drawing Book (Easy) by javascript

by 썸머워즈 2022. 4. 21.
반응형

▷ 문제 : Drawing Book (Easy)

 

Drawing Book | HackerRank

How many pages does a student need to turn to get to page p?

www.hackerrank.com

▷ 해결 날짜 : 2022.04.21
▷ 소요 시간 : 20분
▷ 풀이 과정 :
문제가 너무 쉬웠으나, 단순 반복문으로 풀기 싫어서 고민을 좀 해봤다.

문제는 매개변수로 마지막 페이지 넘버와, 사용자가 원하는 페이지 넘버가 주어지고

그럴 경우 앞에서부터 원하는 페이지로 넘기거나 뒤에서부터 원하는 페이지까지 넘겼을 때 적은 횟수로 넘기는 방법을 찾는 것이다.

 

그림 이미지가 주어지는데 진짜 그냥 책을 생각하면 된다. 책을 펼치면 왼쪽 오른쪽 두 페이지가 존재하는데,

이 성질을 이용하면 굳이 반복문 없이 문제 해결이 가능하다.

결국 주어진 페이지 번호 / 2를 해주면 그 페이지가 몇 번째 장인지 알 수 있다.


▷ 구현

function pageCount(n, p) {
    let lastPage = Math.floor(n / 2);
    let wantPage = Math.floor(p / 2);
    return Math.min(wantPage, lastPage - wantPage);
}


▷ 복기 :
반복문 말고도 쉽게 풀 수 있는 방법이 있는지 계속해서 고민해보자.

이런 습관을 들여야 어느 플랫폼에서든지 효율성 시간 복잡도에서 만점이 나올 수 있다.

반응형


댓글

TOP