728x90
문제
4900번: 7 더하기
boj.ma
풀이
7세그먼트 코드를 10진수로 표현한 A, B가 주어졌을 때, A, B의 합 C를 다시 7세그먼트 코드로 표현하는 문제다.
우선 7세그먼트 코드에 대응하는 10진수들을 매핑해주자.
HashMap<String, String> map = new HashMap<>();
map.put("063", "0");
map.put("0", "063");
map.put("010", "1");
map.put("1", "010");
map.put("093", "2");
map.put("2", "093");
map.put("079", "3");
map.put("3", "079");
map.put("106", "4");
map.put("4", "106");
map.put("103", "5");
map.put("5", "103");
map.put("119", "6");
map.put("6", "119");
map.put("011", "7");
map.put("7", "011");
map.put("127", "8");
map.put("8", "127");
map.put("107", "9");
map.put("9", "107");
주어진 식에서 A, B를 추출하고, 10진수로 변환하자.
// Input
while (true) {
String[] p = br.readLine().split("[+|=]");
if (p[0].equals("BYE"))
break;
// Solve
StringBuilder A = new StringBuilder();
StringBuilder B = new StringBuilder();
for (int i = 0; i < p[0].length(); i += 3) {
A.append(map.get(p[0].substring(i, i + 3)));
}
for (int i = 0; i < p[1].length(); i += 3) {
B.append(map.get(p[1].substring(i, i + 3)));
}
10진수로 변환된 A와 B를 합한 C에 대해 다시 C의 7세그먼트 코드를 출력하면 된다.
String C = String.valueOf(Integer.parseInt(A.toString()) + Integer.parseInt(B.toString()));
StringBuilder res = new StringBuilder();
for (int i = 0; i < C.length(); ++i) {
res.append(map.get(String.valueOf(C.charAt(i))));
}
sb.append(p[0]).append("+").append(p[1]).append("=").append(res).append("\\n");
}
풀이 시간
10분
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/04900.java
problem-solving/baekjoon-online-judge/easy/04900.java at main · rogi-rogi/problem-solving
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 21965] 드높은 남산 위에 우뚝 선 [Java] (0) | 2025.05.14 |
---|---|
[백준 28447] 마라탕 재료 고르기 [Java] (1) | 2025.05.12 |
[백준 23351] 물 주기 [Java] (0) | 2025.05.09 |
[백준 09253] 스페셜 저지 [Java] (1) | 2025.05.07 |
[백준 28125] 2023 아주머학교 프로그래딩 정시머힌 [Java] (0) | 2025.05.05 |