본문 바로가기

Algorithm

[Java] 백준 2864번 : 5와 6의 차이

1. 문제

https://www.acmicpc.net/problem/2864

 

2864번: 5와 6의 차이

첫째 줄에 두 정수 A와 B가 주어진다. (1 <= A,B <= 1,000,000)

www.acmicpc.net

2. 풀이

  • 문자열을 하나씩 쪼개어 붙이기 위해 StringBuilder를 사용
  • 각 a와 b 중 5가 나오면 6을, 6이 나오면 5를 담을 수 있는 조건을 만들고, 5와 6이 없으면 기존 문자를 담는 조건을 만든다.
  • 문자열이므로 int로 형 변환 진행 후 출력 

3. 코드

package baekjoon;

import java.util.Scanner;

public class Q2864 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String a = scanner.next();
        String b = scanner.next();

        StringBuilder minA = new StringBuilder();
        StringBuilder maxA = new StringBuilder();
        StringBuilder minB = new StringBuilder();
        StringBuilder maxB = new StringBuilder();

        for (int i = 0; i < a.length(); i++) {
            if (a.charAt(i) == '5') {
                maxA.append("6");
            } else {
                maxA.append(a.charAt(i));
            }
            if (a.charAt(i) == '6') {
                minA.append("5");
            } else {
                minA.append(a.charAt(i));
            }
        }
        for (int i = 0; i < b.length(); i++) {
            if (b.charAt(i) == '5') {
                maxB.append("6");
            } else {
                maxB.append(b.charAt(i));
            }
            if (b.charAt(i) == '6') {
                minB.append("5");
            } else {
                minB.append(b.charAt(i));
            }
        }
        int min = Integer.parseInt(minA.toString()) + Integer.parseInt(minB.toString());
        int max = Integer.parseInt(maxA.toString()) + Integer.parseInt(maxB.toString());

        System.out.println(min + " " + max);
    }
}

'Algorithm' 카테고리의 다른 글

[Java] 백준 1157 : 단어 공부  (0) 2022.06.04
[Java] 백준 11944 : NN  (0) 2022.04.01
[Java] 백준 10820번 : 문자열 분석  (0) 2022.03.16
[Java] 백준 1100번 : 하얀 칸  (0) 2022.03.10
[Java] 백준 21312번 : 홀짝 칵테일  (0) 2022.03.08