백준 2752번) 세수정렬

하우르·2021년 3월 29일
0

문제

동규는 세수를 하다가 정렬이 하고싶어졌다.

숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다.

숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오.

입력

숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다.

출력

제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다.'

구현

내가 한 구현

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

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer tokenizer = new StringTokenizer(reader.readLine());
		ArrayList<Integer> list = new ArrayList<Integer>();

		for(int i=0;i<3;i++)
			list.add(Integer.parseInt(tokenizer.nextToken()));

		Collections.sort(list);
		for(int n:list)
			System.out.print(n+" ");


	}
}

다른분께서 하신 더 좋은 코딩

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

public class Main {
	
	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuffer sb = new StringBuffer();
		int[] arr;
		
		try {
			
			arr = new int[3];
			String[] s = br.readLine().split(" ");
			for(int i=0; i<3; i++)
				arr[i] = Integer.parseInt(s[i]);

			selectionSort(arr);
			
			for(int i : arr)
				sb.append(i).append(" ");
			
			System.out.println(sb);
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}
 
	public static void selectionSort(int[] arr) {
		
		int min;
		
		for(int i=0; i<arr.length-1; i++) {
			min = i;
			for(int j=i+1; j<arr.length; j++) {
				if(arr[j] < arr[min])
					min = j;
			}
			int tmp = arr[i];
			arr[i] = arr[min];
			arr[min] = tmp;
			
		}
		
	}
}
profile
주니어 개발자

0개의 댓글

관련 채용 정보