[백준/BOJ]2864. 5와 6의 차이(java) [Bronze 2]

jychan99·2023년 8월 5일
0
post-thumbnail
  1. 5와 6의 차이

문제출처 : https://www.acmicpc.net/problem/2864

code

import java.util.Scanner;
public class Main {
	public static void main(String[] args)
	{
		Scanner scan = new Scanner(System.in);
		int A = scan.nextInt();
		int B = scan.nextInt();
		int A_len = (int)Math.log10(A)+1;
		int B_len = (int)Math.log10(B)+1;
		int sum = A + B;
		int min_index=0, max_index =0;

		for(int i=0;i<A_len;i++){
			if(A % 10 == 5){
				max_index += Math.pow(10,i);
			}else if(A % 10 == 6){
				min_index += Math.pow(10,i);
			}
			A/=10;
		}
		for(int i=0;i<B_len;i++){
			if(B % 10 == 5){
				max_index += Math.pow(10,i);
			}else if(B % 10 == 6){
				min_index += Math.pow(10,i);
			}
			B/=10;
		}

		System.out.print(sum-min_index);
		System.out.print(" ");
		System.out.print(sum+max_index);
	}
}

요즘 이리치이고 저리치이고 신경쓸게 많아서 매너리즘에 좀빠져있었는데, 다시 백준풀면서 그 마음을 다잡아보려한다.

풀이는 여러 방법이 있지만, 최솟값이 나오려면 5또는 6이란 숫자를 전부 5로 보고,
반대로 최댓값이 나오려면 전부 6으로 보면되니까 전부 5로 치환한 숫자의 합, 전부 6으로 치환한 숫자의 합을 구하면되는데, 어차피 더해서 5랑 6만 구분하면 되니까 원래 합에다가 최솟값으로 만들어주는 인덱스값과 최댓값으로 만들어주는 인덱스값만 구해서 더하거나 빼주면 된다고 생각했다.

예전엔 C나 C++로 공부했었는데 솔직히 다까먹었고(다시 공부하면 쓸순있겠지만..) 지금은 회사에서 자바를 쓰니 자바로 한번 올려볼까 한다.


자바로 백준 제출할때 IDE에서 쓸때처럼 그냥 제출하면안되고 무조건 클래스이름을 Main 으로 써야한다!

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

2개의 댓글

comment-user-thumbnail
2023년 8월 5일

감사합니다. 이런 정보를 나눠주셔서 좋아요.

1개의 답글