관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[알고리즘] 프로그래머스 예상 대진표 -2017 팁스타운- 본문

알고리즘/일반(단순구현)

[알고리즘] 프로그래머스 예상 대진표 -2017 팁스타운-

막무가내막내 2020. 3. 27. 12:05
728x90

 

https://programmers.co.kr/learn/courses/30/lessons/12985#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

지인에게 추천을 받은 문제를 풀어봤습니다. 

2의 n 승으로 경우로 게임 참가자 수를 주어서 비교적 쉽게 풀 수 있었던 것 같습니다. 그래서 부전승도 없고 ㅎㅎ

설명은 주석에 작성했습니다.!!

 

    class Solution {

        //게임 참가자 수 N, 참가자 번호 A, 경쟁자 번호 B
        public int solution(int n, int a, int b) {
            int answer = 1;
            int aNum = a;
            int bNum = b;
            while (true) {
                // 12냐 23이냐 차이 구분
                if (aNum < bNum) {
                    if (Math.abs(aNum - bNum) == 1 && ((aNum / 2 + 1) == bNum / 2)) {
                        break;
                    }
                } else {
                    if (Math.abs(aNum - bNum) == 1 && ((bNum / 2 + 1) == aNum / 2)) {
                        break;
                    }
                }
                //승리 후 재배치
                if (aNum % 2 == 0) { //짝수
                    aNum = aNum / 2;
                } else { //홀수
                    aNum = aNum / 2 + 1;
                }
                if (bNum % 2 == 0) { //짝수
                    bNum = bNum / 2;
                } else { //홀수
                    bNum = bNum / 2 + 1;
                }
                answer++;
            }

            return answer;
        }
    }

 

 

풀이 후 지인의 풀이를 봤는데 점화식을 사용해서 풀었더라고요. (전 그냥 막무가내로 풀었는데 ㅎㅎㅎ) 

참고하면 좋을 것 같습니다.

https://lifelife7777.tistory.com/42

 

프로그래머스 - 예상대진표

https://programmers.co.kr/learn/courses/30/lessons/12985# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업..

lifelife7777.tistory.com

댓글과 공감은 큰 힘이 됩니다. 감사합니다.!!

728x90
Comments