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 |
댓글