프로그래머스 - 예상 대진표(C++)
문제 출처: https://programmers.co.kr/learn/courses/30/lessons/12985
문제 난이도
Lv 2
문제 접근법
2의 제곱으로 N이 주어지는 것과 무조건 a,b 숫자가 연속으로 대결을 한다는 것이 문제 푸는 포인트다. 그러므로 1,2 -> 한그룹 3,4 -> 한그룹 이걸 1,2,3으로 나뉠수 있고 이걸 또 나뉠 수 있다.
통과 코드
#include <iostream>
using namespace std;
int solution(int n, int a, int b)
{
int answer = 1;
while(1){
if(a%2==0 && a-1==b) break;
if(a%2==1&&a+1==b) break;
a = a % 2 == 0 ? a/2 : a/2+1;
b = b % 2 == 0 ? b/2 : b/2+1;
answer++;
}
return answer;
}
피드백
처음에 걍 a/2 - b/2 +1
의 식을 도출해서 풀었는데 테케를 통과하지 못했다. 왜일까? 여러 테케를 시도해봤는데 다 맞아가지고 일단 일일이 나누고 들어가는 식으로 했다.
Author And Source
이 문제에 관하여(프로그래머스 - 예상 대진표(C++)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@woga1999/프로그래머스-예상-대진표C저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)