seunghyun Note
[프로그래머스] - 예상 대진표 with JAVA 본문
728x90
반응형
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12985
문제 풀이
1.홀수일 때 짝수로 바꿔주기
2. a==b가 같으면 1로 return
3. while 안에서 반복을 돌리고 2로 계속 나눠준다. 둘이 같다면 종료
class Solution
{
public int solution(int n, int a, int b)
{
int answer = 0;
if(a % 2== 1 ) a++;
if(b % 2== 1 ) b++;
int cnt=0;
System.out.println(a + " " + b);
if(a==b) return 1;
while(a!=b){
if(a % 2== 1 ) a++;
if(b % 2== 1 ) b++;
a/=2;
b/=2;
cnt++;
}
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
System.out.println(cnt);
return cnt;
}
}
코드를 실행했을 때 오래 걸림
다른 해결법
불필요한 조건문들을 없애고 홀수를 짝수로 만들기 보다는 나눴을 때 몫만 비교하게 했다.
class Solution {
public int solution(int n, int a, int b) {
int cnt = 0;
while (a != b) {
a = (a + 1) / 2;
b = (b + 1) / 2;
cnt++;
}
return cnt;
}
}
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[프로그래머스] - 카페 with JAVA (0) | 2024.01.04 |
---|---|
[프로그래머스] - 구명보트 with JAVA (1) | 2024.01.04 |
[프로그래머스] N개의 최소공배수 with JAVA (0) | 2024.01.04 |
[프로그래머스] - 멀리 뛰기 with JAVA (0) | 2024.01.04 |
[프로그래머스] - 추억점수 with JAVA (1) | 2024.01.04 |