본문 바로가기
코딩/백준-자바

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

by 철없는민물장어 2023. 1. 2.
728x90
반응형

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

 

2864번: 5와 6의 차이

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

www.acmicpc.net

 

a의 최대,최소

b의 최대,최소를 구한다.

 

최댓값끼리 더해 최댓값을 구하고

최솟값끼리 더해 최솟값을 구한다.

 

정수를 String형으로 받아서 한 문자씩 처리하면 된다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class P2864 {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());

		String str_a = st.nextToken();
		String str_b = st.nextToken();

		StringBuffer max_a = new StringBuffer("");
		StringBuffer min_a = new StringBuffer("");
		StringBuffer max_b = new StringBuffer("");
		StringBuffer min_b = new StringBuffer("");
		for (int i = 0; i < str_a.length(); i++) {
			if (str_a.charAt(i) - '0' == 5) {
				max_a.append(6);
				min_a.append(5);
			} else if (str_a.charAt(i) - '0' == 6) {
				min_a.append(5);
				max_a.append(6);
			} else {
				max_a.append(str_a.charAt(i));
				min_a.append(str_a.charAt(i));
			}
		}
		for (int i = 0; i < str_b.length(); i++) {
			if (str_b.charAt(i) - '0' == 5) {
				max_b.append(6);
				min_b.append(5);
			}

			else if (str_b.charAt(i) - '0' == 6) {
				min_b.append(5);
				max_b.append(6);
			} else {
				max_b.append(str_b.charAt(i));
				min_b.append(str_b.charAt(i));
			}
		}

		int rs_max = Integer.parseInt(max_a.toString()) + Integer.parseInt(max_b.toString());
		int rs_min = Integer.parseInt(min_a.toString()) + Integer.parseInt(min_b.toString());
		System.out.println(rs_min + " " + rs_max);
	}

}
728x90
반응형

댓글