"꾸준하고 완벽한 한 걸음"

PS/Baekjoon Online Judge

[백준 04900] 7 더하기 [Java]

kimyoungrok 2025. 5. 10. 22:42
728x90

문제

4900번: 7 더하기

 

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