최대 1 분 소요

세 수

문제

세 정수 A,B,C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 세 정수 A,B,C가 공백으로 구분되어 주어진다

출력

두 번째로 큰 정수를 출력한다.

문제 생각해보기

첫번째 줄에 3개의 정수를 출력하는건 공밳으로 구분되어야한다.

String[] 배열로 받고

int형식으로 값을 받을

Int[]를 새로 만들고 배열의 길이는 Sting 배열의 값만큼 만든다.

이제 for 문으로 String값만큼 돌려서

그 값들을 int[]안에 넣고

그 값들을 sort를 이용하여 정렬을 한다

이후 2번째로 큰 값이니

그양 배열중에 2째값을 불러오면된다.

문제 해결

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
 
public class Main {
	public static void main(String[] args) throws IOException {
    
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] input = br.readLine().split(" ");

		int[] nums = new int[input.length];
		for(int i = 0; i < input.length; i++){
			nums[i] = Integer.parseInt(input[i]);
		}
		Arrays.sort(nums);

		for(int num : nums){
			System.out.println("들어간 값들 : " + num);
		}

		if(nums.length >= 2){
			System.out.println("2번째 값 : " + nums[nums.length - 2]);
		}
		
	}
 
}

해당 문제는 그저 string배열에 있는걸 int로 옴기고 배열후 2번째 값만 불러오면 되는것이다.

만약 사용자가 입력을 3개 이상으로 랜덤하게 할 수 있었다면 문제가 좀더 복잡해 지겠지만 이건 3개의 정수만 입력 받으므로 쉽게 풀수 있었다.

댓글남기기