[백준] 2908번 : 상수- Java(자바)

이정우·2021년 9월 4일
0

백준

목록 보기
11/32

이번 문제는 숫자 2개(100 < 숫자 < 999)를 입력받아 각각 반전 시킨 후 크기 비교를 해서 더 큰걸 출력하는 문제였습니다.

import java.util.Scanner;
public class Sangsu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		String num = sc.next(); //숫자 2개를 문자열로 받음.
		String num2 = sc.next();
		String[] blink = new String[1]; //빈 배열 1개 생성.
		String[] num_arr = num.split(""); 
		String[] num_arr2 = num2.split("");
		for (int i = 0; i < 3; i++) { //백의자리만 존재하니 3번 반복해서 숫자를 반전시켜줌
			blink[0] = num_arr[0];
			num_arr[0] = num_arr[2];
			num_arr[2] = blink[0];
		}
		num = "";
		for (int j = 0; j < 3; j++) { //문자 배열의 값을 문자열(String)에 저장해줌
			num += num_arr[j];
		}
		//똑같이 두번째 문장도 반복
		for (int i = 0; i < 3; i++) {
			blink[0] = num_arr2[0];
			num_arr2[0] = num_arr2[2];
			num_arr2[2] = blink[0];
		}
		num2 = "";
		for (int j = 0; j < 3; j++) { 
			num2 += num_arr2[j];
		}
		if (Integer.parseInt(num) > Integer.parseInt(num2)) {
			System.out.println(Integer.parseInt(num));
		} else {
			System.out.println(Integer.parseInt(num2));
		}
	}

}

일단 저는 문자열로 받아서 문자 배열에 넣었고, 빈 공간의 배열을 하나 만들어서 이를 이용해서 숫자를 옮겨줘서 반전 시켰습니다. 이렇게 문자열 2개를 전부 반전 시켜준 후 Interger.parseInt()메서드를 사용해서 숫자로 바꿔서 크기 비교를 해줘서 더 큰 숫자를 출력해줬습니다. 다 풀고 다른 분들 코드를 보니 아예 숫자 배열로 2개 입력 받아서 각 숫자에 / % *등을 사용해서 짧게 푸신 분도 있고 StringBuilder클래스의 reverse().toString() 메서드를 사용하는 분들 등.. 여러 메서드를 볼 수 있어서 좋은 기회였습니다.

출처 : 백준 2908번 https://www.acmicpc.net/problem/2908

profile
프로그래밍 공부 중!

0개의 댓글