관리 메뉴

有希

Hacker Rank/Tower Breakers 본문

프로그래밍/알고리즘+코딩테스트

Hacker Rank/Tower Breakers

有希. 2022. 4. 2. 00:06

두 가지 어려움이 있다. 영어 그리고 알고리즘 문제 -_-

2명이 번갈아가며 수행하고 항상 1번이 먼저 한다.

1번은 타워의 높이의 약수만큼 덜어내거나 높이가 1이 되도록 덜어낼 수 있다.

1,2번이 번갈아가며 수행할 때 자기 차례때 모든 타워의 높이가 1인 상태이면 패배한다.(타워 높이 1을 만들면 그 타워는 더이상 건들지 못한다)

예외 사항부터 처리한다.

모든 타워의 높이가 1이라면? 처음 시작이 1번이고, 더이상 덜어낼 수 없으므로 2번 승리

타워의 개수가 짝수개이다 -> 타워 개수 2개 놓고 생각해보면 된다. 무조건 2번이 이긴다. 모든 타워의 높이가 같으므로 짝짝 홀홀만 고려하면 된다.

마찬가지로 홀수개이다 -> 무조건 1번이 이긴다

이를 코드로 옮기면 다음과 같다.

int towerBreakers(int n, int m) {
    if (m==1){
        return 2;
    }
    if (n%2==0){
        return 2;
    }
    else
    {
        return 1;
    }
}

문제를 풀면서 느끼는게 HackerRank는 지능테스트 같은 느낌의 문제가 꽤 있다. 나름대로 신선하다.

'프로그래밍 > 알고리즘+코딩테스트' 카테고리의 다른 글

HackerRank/Grid Challenge  (0) 2022.04.04
HackerRank/Caesar Cipher  (0) 2022.04.02
HackerRank/Zig Zag Sequence  (0) 2022.03.30
HackerRank/Flipping the Matrix  (0) 2022.03.30
HackerRank/Counting Sort 1  (0) 2022.03.29