728x90
반응형
2024.11.24기준 - 브론즈2
728x90
백준, BEAKJOON, BOJ, JAVA, 자바
🟥 풀이
이 문제는 입력받은 숫자를 2진수로 변환하여 조건에 맞게 만들어 4자리 수를 출력하는 문제입니다.
문제 접근
- 입력받은 문자열을 숫자로 변환합니다
- 변환된 수를 2진수로 변환하여 마지막 4자리를 구합니다.
- 이렇게 완성된 문자열을 10진수로 변환하여 출력합니다.
1. 입력받은 문자열을 숫자로 변환 후 조건에 맞게 마지막 4자리를 구해 저장합니다.
StringBuilder sb = new StringBuilder();
int num;
for (int i = 0; i < 3; i++) {
num = Integer.parseInt(br.readLine());
// 입력받은 문자열을 이진수로 변환해 마지막 4자리만 저장
sb.append(LSB4(Integer.toBinaryString(num)));
}
2. 완성된 2진수 문자열을 10진수로 변환합니다.
// 완성된 2진수 문자열을 10진수로 변환하여 저장
String str = String.valueOf(Integer.parseInt(sb.toString(), 2));
3. 완성된 문자열의 길이를 보고 0을 추가하거나 바로 출력합니다.
// 완성된 문자열의 길이를 보고 0을 붙여 출력
sb = new StringBuilder();
if (str.length() < 4) {
int count = 4 - str.length();
while (count-- > 0) {
sb.append("0");
}
sb.append(str);
} else {
sb.append(str);
}
🟪 코드
package Main;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int num;
for (int i = 0; i < 3; i++) {
num = Integer.parseInt(br.readLine());
// 입력받은 문자열을 이진수로 변환해 마지막 4자리만 저장
sb.append(LSB4(Integer.toBinaryString(num)));
}
// 완성된 2진수 문자열을 10진수로 변환하여 저장
String str = String.valueOf(Integer.parseInt(sb.toString(), 2));
// 완성된 문자열의 길이를 보고 0을 붙여 출력
sb = new StringBuilder();
if (str.length() < 4) {
int count = 4 - str.length();
while (count-- > 0) {
sb.append("0");
}
sb.append(str);
} else {
sb.append(str);
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
// 마지막 4자리만 저장하고, 적다면 0을 붙이는 메소드
private static String LSB4 (String s) {
String result = "";
if (s.length() >= 4) {
result = s.substring(s.length() - 4, s.length());
} else {
int count = 4 - s.length();
while (count-- > 0) {
result += "0";
}
result += s;
}
return result;
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BEAKJOON / 백준 - JAVA 31962번 등교 (0) | 2024.11.25 |
---|---|
BEAKJOON / 백준 - JAVA 31825번 장기 (0) | 2024.11.23 |
BEAKJOON / 백준 - JAVA 2714번 문자를 받은 승환이 (0) | 2024.11.22 |
BEAKJOON / 백준 - JAVA 32290번 MEX vs OR (0) | 2024.11.21 |
BEAKJOON / 백준 - JAVA 32371번 샷건 (0) | 2024.11.20 |