본문 바로가기
Algorithm/Baekjoon

Baekjoon 2751 수 정렬하기 2 JAVA

by Hunveloper 2022. 1. 14.
728x90
 

2751번: 수 정렬하기 2

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int n= Integer.parseInt(br.readLine()), pmin=1000000, pmax=0, mmin=1000000, mmax=0;
		int[] parr=new int[1000005];
		int[] marr=new int[1000005];
		for(int i=0;i<n;i++) {
			int temp=Integer.parseInt(br.readLine());
			if(temp>-1) {
				parr[temp]++;
				if(temp>pmax)
					pmax=temp;
				if(temp<pmin)
					pmin=temp;
			}
			else {
				marr[temp*-1]++;
				if(temp>mmax)
					mmax=temp;
				if(temp<mmin)
					mmin=temp;
			}
		}
		for(int i=-mmin;i>=-mmax;i--)
			if(marr[i]!=0)
				bw.write("-"+i+"\n");
		for(int i=pmin;i<=pmax;i++)
			if(parr[i]!=0)
				bw.write(i+"\n");
		
		bw.flush();
		bw.close();
	}
}
728x90
728x90

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

Baekjoon 10828 스택 JAVA  (0) 2022.01.14
Baekjoon 2609 최대공약수와 최소공배수 JAVA  (0) 2022.01.14
Baekjoon 2750 수 정렬하기 JAVA  (0) 2022.01.14
Baekjoon 10845 큐 JAVA  (0) 2022.01.14
Baekjoon 9012 괄호 JAVA  (0) 2022.01.13

댓글