www.hackerrank.com/challenges/30-binary-numbers/problem?isFullScreen=true
String binaryNumber = Integer.toBinaryString(num);
String octaNumber = Integer.toOctalString(num);
String hexaNumber = Integer.toHexaString(num);
int num1 = Integer.parseInt(binaryNumber, 2);
int num2 = Integer.parseInt(octaNumber, 8);
int num3 = Integer.parseInt(hexaNumber, 16);
위와 같이 자바는 2진수 8진수 16진수로 만들어주는 메소드가 이미 존재하므로 사용하면 된다.
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;
public class Solution {
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int n = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
String binaryNumber = Integer.toBinaryString(n);
int answer = 0;
int tempCount = 0;
for(int i=0; i<binaryNumber.length(); i++){
char tempNum = binaryNumber.charAt(i);
if(tempNum == '1'){
tempCount++;
answer = Math.max(tempCount, answer);
}else{
tempCount = 0;
}
}
System.out.println(answer);
scanner.close();
}
}
'개발자 > algorithm' 카테고리의 다른 글
백준 4779번 : 칸토어 집합 (kotlin) (0) | 2021.08.28 |
---|---|
2021 카카오 코딩테스트 : 순위 검색 (0) | 2021.08.27 |
백준 19279번 : 최대 힙 (java) (0) | 2021.01.12 |
LeetCode, Valid Parentheses (Java) (0) | 2021.01.09 |
LeetCode, Rotate Image (Java) (0) | 2021.01.08 |