풀이방법
사용된 것:
ArrayList
2022.04.30
ArrayList는 새로운 요소를 특정 인덱스에 추가하였을 때 그 인덱스보다 뒤에 있는 요소들을 자동으로 한 자리씩 뒤로 이동시켜준다. 따라서 이 문제는 ArrayList를 사용하면 쉽게 풀리는 문제이다.
학생이 뽑은 번호가 주어질 때마다
맨 뒷자리의 인덱스, 즉 이번 학생이 0을 뽑았을 경우 서야 하는 자리의 인덱스에서
학생이 뽑은 번호만큼을 빼서
그 인덱스에 학생을 add하면 된다.
코드
Java(2022.04.30)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
//학생 리스트 선언
ArrayList<Integer> students = new ArrayList<Integer>();
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i = 0; i<n; i++) {
int num = Integer.parseInt(st.nextToken());
students.add(i-num, i+1); //맨 뒤 위치의 인덱스에서 뽑은 숫자를 뺀 만큼의 인덱스에 학생 추가
}
//정답 출력
StringBuilder sb = new StringBuilder();
for(int i : students) sb.append(i + " ");
System.out.print(sb);
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
#2869 : 달팽이는 올라가고 싶다 (0) | 2022.05.01 |
---|---|
#13335 : 트럭 (0) | 2022.04.30 |
#4949 : 균형잡힌 세상 (0) | 2022.04.29 |
#1449 : 수리공 항승 (0) | 2022.04.28 |
#2108 : 통계학 (0) | 2022.04.28 |