본문 바로가기
PS/프로그래머스

[프로그래머스 *Java] - 예상 대진표

by Jman 2022. 7. 12.

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

 

프로그래머스

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

programmers.co.kr

 

조건

제한 시간 : 45분

문제 접근을 잘못해서 시간 내에 풀지를 못했다.
a와 b 값이 둘 다 n/2 값보다 클 경우를 고려하지 못해서 최종제출 때 절반만 맞게 뜨고 '맞왜틀' 하다가 시간만 지나갔다.
시간이 초과되어 질문하기를 찾아보고 이유를 알게되어 로직을 수정하였다.

 

로직 실패한 코드

class Solution {
    public int solution(int n, int a, int b) {
        int answer = 2;
        while(answer <= n) {
            if(answer >= a && answer >= b) {
                break;
            }else {
                answer *= 2;
            }
        }
        int count = 1;
        while(answer != 2) {
            answer /= 2;
            count++;
        }
        return count;
    }
}

수정하여 성공한 코드

class Solution {
    public int solution(int n, int a, int b) {
        int answer = 0;
        
        while (a != b) {
            a = (a+1)/2;
            b = (b+1)/2;
            answer++;
        }
        return answer;
    }
}