Link
Today
Total
12-23 06:23
Archives
관리 메뉴

초보개발자 긍.응.성

[Java] 8993. 하지 추측 본문

코딩테스트/SW Expert Academy

[Java] 8993. 하지 추측

긍.응.성 2020. 3. 23. 14:24
반응형

D4-8993. 하지 추측

 

문제출처: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AW6GFM8aLacDFAVX&categoryId=AW6GFM8aLacDFAVX&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

N = 2k - 1(홀), N = 2k(짝) 두개의 경우로 나누어 생각해보았다. k가 순수 2의 거듭제곱 수 일때만 종료.

프로그램이 종료하기 위해서는 N 이 2의 거듭제곱이어야 함을 이해하면 쉽게 해결할 수 있다.

 

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.Scanner;

class Solution {
	public static void main(String args[]) throws Exception {
		Scanner sc = new Scanner(System.in);
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int T = sc.nextInt();

		for (int test_case = 1; test_case <= T; test_case++)	{
			long N = sc.nextLong();
			if (N % 2 != 0)
				bw.write("#" + test_case + " NO\n");
			else {
				while (N % 2 == 0) {
					N = N >> 1;
				}
				if (N == 1)
					bw.write("#" + test_case + " YES\n");
				else
					bw.write("#" + test_case + " NO\n");
			}
		}
		
		bw.flush();
		bw.close();
	}
}
반응형
Comments