코딩테스트 연습 기록

이종길·2022년 1월 15일
0

코딩테스트 연습

목록 보기
48/128

2022.01.15 24일차

백준 2864번 (5와 6의 차이)

문제

상근이는 2863번에서 표를 너무 열심히 돌린 나머지 5와 6을 헷갈리기 시작했다.

상근이가 숫자 5를 볼 때, 5로 볼 때도 있지만, 6으로 잘못 볼 수도 있고, 6을 볼 때는, 6으로 볼 때도 있지만, 5로 잘못 볼 수도 있다.

두 수 A와 B가 주어졌을 때, 상근이는 이 두 수를 더하려고 한다. 이때, 상근이가 구할 수 있는 두 수의 가능한 합 중, 최솟값과 최댓값을 구해 출력하는 프로그램을 작성하시오.

나의 풀이

  1. 최대A, 최대B, 최소A, 최소B 구하기
import java.util.*;

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

        String A = scanner.next();
        String B = scanner.next();

        String maxA = "";
        String maxB = "";
        String minA = "";
        String minB = "";

        for (int i = 0; i < A.length(); i++) {
            if (A.charAt(i) == '6') {
                maxA += "6";
                minA += "5";
            } else if (A.charAt(i) == '5') {
                maxA += "6";
                minA += "5";
            } else {
                maxA += A.charAt(i) + "";
                minA += A.charAt(i) + "";
            }
        }

        for (int x = 0; x < B.length(); x++) {
            if (B.charAt(x) == '6') {
                maxB += "6";
                minB += "5";
            } else if (B.charAt(x) == '5') {
                maxB += "6";
                minB += "5";
            } else {
                maxB += B.charAt(x) + "";
                minB += B.charAt(x) + "";
            }
        }

        int max = Integer.parseInt(maxA) + Integer.parseInt(maxB);
        int min = Integer.parseInt(minA) + Integer.parseInt(minB);

        System.out.printf("%d %d", min, max);

    }
}

생각하기

  • String에서 replace, replaceAll 활용하면 쉽게 풀이 가능
    replace(char oldChar, char NewChar)
    replaceAll(String regex, String replacement)
profile
Go High

0개의 댓글

관련 채용 정보