💻 Algorithm/Baekjoon

[JAVA] 백준 2908 - 상수

dlalwl_jpg 2022. 6. 28. 17:00

 브론즈II

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

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

문제

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.

상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.

두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.


입력

첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.


접근방법

입력받은 점수를 10으로 나눈 나머지에 100을 곱해주고 1, 10, 10의 제곱으로 나누어 더해주었다. 반복할 때는 10으로 나눈 몫을 점수로 저장하여 반복하였다.

734라면 10으로 나눈 나머지 4에 100을 곱한다음 1로 나눈 400을 new_score에 더하고, 10으로 나눈 몫인 73을 다시 10으로 나눈 나머지 3에 100을 곱하여 10으로 나눈 다음 new_score에 더하기 30, 그 다음 몫인 7을 10으로 나눈 나머지 7에 100을 곱해 100으로 나눈 7을 new_socre에 더하여 437로 만들었다.


코드

package bj2908;

import java.util.Scanner;

public class bj2908 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		
		//변수 선언
		int score, rev_score = 0, max = 0;
		int[] new_score = new int[2];
		int i = 0, j = 1;
		
		for(i = 0; i < 2; i++) {
			score = sc.nextInt(); //점수 입력
			
			while(score % 10 != 0) { //점수를 역순으로 바꾸기

				rev_score += ((score % 10) * 100) / j; 
				j *= 10;
				score = score / 10;
			}
			
			new_score[i] = rev_score; //역순으로 바꾼 점수를 new_score에 저장
			//초기화
			j = 1;
			rev_score = 0;
		}
		
		for(i = 0; i < 2; i++) { //큰 점수 비교
			if(max < new_score[i])
				max = new_score[i];
		}
		
		//결과 출력
		System.out.println(max);		
	}

}

'💻 Algorithm > Baekjoon' 카테고리의 다른 글

[JAVA] 백준 8958 - OX퀴즈  (0) 2022.07.01
[JAVA] 백준 2920 - 음계  (0) 2022.07.01
[JAVA] 백준 2675 - 문자열 반복  (0) 2022.06.28
[JAVA] 백준 1546 - 평균  (0) 2022.06.27
[JAVA] 백준 1157 - 단어 공부  (0) 2022.06.27