https://school.programmers.co.kr/learn/courses/30/lessons/12985#
조건
제한 시간 : 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;
}
}
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 *Java] - 거리두기 확인하기 (0) | 2022.07.13 |
---|---|
[프로그래머스 *Java] - 올바른 괄호 (0) | 2022.07.13 |
[프로그래머스 *Java] - 게임 맵 최단거리 (0) | 2022.07.11 |
[프로그래머스 *Java] - 가장 큰 수 (순열로 접근x -> 런타임 에러 발생) (0) | 2022.07.09 |
[프로그래머스 *Java] - 더 맵게 (0) | 2022.07.07 |