1. 문제
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오.
2. 문제 접근
1) 첫 째 줄에 회원의 수 N을 입력받는다.
2) 나이순으로 정렬을 하기 때문에 나이 범위에 해당하는 String 배열을 생성한다.
3) N만큼 반복하여 회원의 나이와 이름을 입력받는다.
4) 이 때, 회원의 나이에 해당하는 인덱스를 검사한다. 해당 인덱스의 값이 null일 경우 String객체를 하나 생성하여 입력받은 값을 넣는다. null이 아닐 경우 배열의 String 뒤에 입력받은 값을 붙여 넣는다.
5) String 배열을 처음부터 돌며 출력하여준다.
3. 코드
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String arr[] = new String[201];
StringBuilder sb = new StringBuilder();
StringTokenizer st;
for(int i=0;i<N;i++) {
st = new StringTokenizer(br.readLine());
int age = Integer.parseInt(st.nextToken());
String name = st.nextToken();
if(arr[age]==null) {
arr[age] = new String(Integer.toString(age) + " " + name);
}
else {
arr[age]= arr[age].concat("\n" + Integer.toString(age) + " " + name);
}
}
for(int i=0;i<arr.length;i++) {
if(arr[i]!=null) {
sb.append(arr[i]).append("\n");
}
}
System.out.print(sb);
}
}
'백준 > JAVA' 카테고리의 다른 글
[백준/JAVA] 11729번 하노이 탑 이동 순서 (0) | 2023.02.06 |
---|---|
[백준/JAVA] 18870번 좌표 압축 (0) | 2023.02.06 |
[백준/JAVA] 11650번 좌표 정렬하기 (0) | 2023.02.06 |
[백준/JAVA] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2023.02.06 |
[백준/JAVA] 1427번 소트인사이드 (0) | 2023.02.06 |