백준, 정렬)세 수
세 수
문제
세 정수 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개의 정수만 입력 받으므로 쉽게 풀수 있었다.
댓글남기기