백준 문제풀이/문자열

2908. 상수 (자바, JAVA)

뮤츠 2022. 9. 13. 02:39

상대적으로 수월한 문제로, 이미 앞에서 했던 자릿수 바꾸기만 능숙하게 할 수 있어도 어려움이 없습니다.

저는 풀이 보니까 쓸데없이 복잡하게 풀었네요...지금 풀라고 한다면, 그냥 각 자릿수를 charAt으로 추출해서,

StringBuilder로 거꾸로 합친 뒤 새로운 숫자를 만들듯? 이걸 쌩 int로 Math함수를 동원하고, 2차원 배열쓰고 난리났네요.

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

public class Main {

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
				
		String str = br.readLine();
		String[]str2 = str.split(" ");
		
		int[][] a = new int[str2.length][3];	// 각 수의 자리별 숫자
		int[] b = new int[str2.length];	//두 수
		int[] bb = new int[str2.length]; // 뒤집힌수
		
		
		for (int i=0; i<str2.length; i++) {
			
			b[i] = Integer.parseInt(str2[i]);
			
			for (int j=0; j<=((int)Math.log10(b[i])); j++) {
				
				a[i][j] = (b[i]%(int)(Math.pow(10,j+1)))/(int)(Math.pow(10,j));
				
			}
			
						
		}
		
		for (int k=0; k<str2.length; k++) {
			
			for (int l=0; l<3; l++) {
				
				bb[k] = bb[k] + a[k][l]*(int)(Math.pow(10,2-l));
				
			}
			
		}
		
		if (bb[0] > bb[1]) {
			
			System.out.println(bb[0]);
			
		} else {
			
			System.out.println(bb[1]);
			
		}
		
		
		

	}

}