-
[Baekjoon Online Judge] 1212번: 8진수 2진수문제 풀이/Baekjoon Online Judge 2021. 2. 5. 20:37
요구사항
- 8진수가 주어졌을 때, 2진수로 변환한다.
입력
- 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.
출력
- 첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다.
빠른 변환을 위하여 map에 key 값을 8진수로, value 값을 8진수를 2진수로 나타낸 값으로 세팅한다. 입력받은 8진수를 for loop를 돌며 값을 채워준다. 조건 중에 반드시 1로 시작해야 하기 때문에 완성된 이진수 문자열을 체크하여 0을 삭제해준다.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; public class Baekjoon1212 { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); Map<String, String> octalMap = new HashMap<>(); octalMap.put("0", "000"); octalMap.put("1", "001"); octalMap.put("2", "010"); octalMap.put("3", "011"); octalMap.put("4", "100"); octalMap.put("5", "101"); octalMap.put("6", "110"); octalMap.put("7", "111"); String octal = bufferedReader.readLine(); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < octal.length(); i++) stringBuilder.append(octalMap.get(String.valueOf(octal.charAt(i)))); for (int i = 0; i < 2; i++) { if (stringBuilder.toString().charAt(0) == '0') stringBuilder.deleteCharAt(0); } System.out.println(stringBuilder.toString()); bufferedReader.close(); } }
'문제 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
[Baekjoon Online Judge] 1912번: 연속합 (0) 2021.02.06 [Baekjoon Online Judge] 11053번: 가장 긴 증가하는 부분 수열 (0) 2021.02.06 [Baekjoon Online Judge] 11656번: 접미사 배열 (0) 2021.02.05 [Baekjoon Online Judge] 10988번: 팰린드롬인지 확인하기 (0) 2021.02.05 [Baekjoon Online Judge] 2193번: 이친수 (0) 2021.02.02