프로그램 명: notaskwhy
제한시간: 1 초
학생의 반과 번호가 입력으로 주어진다.
줄을 서는 방식은
- 반으로는 1 , 4 , 2 , 3 반 순으로 줄을 서야하고
- 같은 반 내에서는 1 반과 3 반은 오름차순 2 반과 4 반은 내림차순으로
줄을 서야 한다.
왜 그렇게 줄을 서야 하는지는 묻지마라... 묻다가 다친 사람이 여러 명이다.(^^)
입력
입력의 첫줄은 총 인원수 n 이 입력된다. n 은 1 이상 100 이하인 자연수이다. 다음 줄 부터는 반 번호와 반 내에서의 학생번호가 입력된다.
반 번호는 1 에서 4 까지이고 학생 번호는 1 에서 60 사이다. 물론 같은 반내에서는 같은 번호가 존재하지 않는다.
출력
정렬된 순서대로 한 줄에 한 명씩 반 과 번호를 출력한다.
입출력 예
입력
9
1 2
3 10
1 30
1 31
4 1
2 1
4 2
3 1
2 30
출력
1 2
1 30
1 31
4 2
4 1
2 30
2 1
3 1
3 10
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int[][] arr=new int[4][60];
for(int stu=0;stu<n;stu++){
int a=sc.nextInt();
for(int d=0;d<stu+2;d++){
if(arr[a-1][d]==0){
arr[a-1][d]=sc.nextInt();
break;
}
}
}
int temp=0;
for(int f=0;f<60;f++)
for(int s=0;s<arr[0].length-1;s++)
if(arr[0][s]>arr[0][s+1]){
temp=arr[0][s];
arr[0][s]=arr[0][s+1];
arr[0][s+1]=temp;
}
for(int s=0;s<arr[0].length;s++){
if(arr[0][s]==0)
continue;
System.out.println("1 "+arr[0][s]);
}
for(int f=0;f<60;f++)
for(int s=0;s<arr[3].length-1;s++)
if(arr[3][s]<arr[3][s+1]){
temp=arr[3][s];
arr[3][s]=arr[3][s+1];
arr[3][s+1]=temp;
}
for(int s=0;s<arr[1].length;s++){
if(arr[3][s]==0)
continue;
System.out.println("4 "+arr[3][s]);
}
for(int f=0;f<60;f++)
for(int s=0;s<arr[1].length-1;s++)
if(arr[1][s]<arr[1][s+1]){
temp=arr[1][s];
arr[1][s]=arr[1][s+1];
arr[1][s+1]=temp;
}
for(int s=0;s<arr[1].length;s++){
if(arr[1][s]==0)continue;
System.out.println("2 "+arr[1][s]);
}
for(int f=0;f<60;f++)
for(int s=0;s<arr[2].length-1;s++)
if(arr[2][s]>arr[2][s+1]){
temp=arr[2][s+1];
arr[2][s+1]=arr[2][s];
arr[2][s]=temp;
}
for(int s=0;s<arr[2].length;s++){
if(arr[2][s]==0)continue;
System.out.println("3 "+arr[2][s]);
}
}
}
'개발하자 > JAVA문제풀이' 카테고리의 다른 글
2015.01.10 awt와 DB연동 과제 (0) | 2015.01.11 |
---|---|
2015.01.08 awt 사칙연산 과제 (0) | 2015.01.08 |
2진수 IP주소를 10진수로 바꾸기 (0) | 2015.01.06 |
그릇높이계산 (0) | 2015.01.06 |
frequency (수의 빈도수 계산) (0) | 2015.01.06 |