뮁이의 개발새발

[JAVA] 백준 2605 줄세우기 본문

Algorithm

[JAVA] 백준 2605 줄세우기

뮁뮁이 2021. 8. 27. 01:51

문제는 복잡한 듯 써있는데 사실상 번호가 늘어나는건 고려하지 않아도, 그만큼 빼주는것만 생각하면 된다...

걍 0~뽑은 번호 만큼 앞에가서 서면 되는 문제!

그래서 리스트로 구현해보았다.

 

<코드>

import java.util.LinkedList;
import java.util.Scanner;

public class P2_bj2605 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();

		int[] student = new int[N + 1]; // 뽑은 번호표 저장
		for (int i = 1; i <= N; i++) {
			student[i] = sc.nextInt();
		}

		LinkedList<Integer> list = new LinkedList<Integer>();
		list.add(1); // 무조건 첫번째 학생은 그냥 줄을 선다.
		for (int i = 2; i <= N; i++) { //2번째학생부터..
			int num = student[i]; // 뽑은 숫자 저장
			if (num == 0) { // 만약 0이면 그냥 뒤에 가서 줄선다.
				list.add(i);
			}
			if (num >= 1) { // 만약 1이상이면 뒤에서 그만큼 뺀 곳에 선다.
				list.add(list.size() - num, i);
			}
		}

		for (int i = 0; i < N; i++) { //리스트 출력은 0번째부터! 
			System.out.print(list.get(i) + " ");
		}

	}

}

'Algorithm' 카테고리의 다른 글

[JAVA] 백준 10157 자리배정  (0) 2021.08.28
[JAVA] 백준 2491 수열  (0) 2021.08.27
[JAVA] 백준 2563 색종이  (0) 2021.08.27
[JAVA] 백준 10026 적록색약 (DFS)  (0) 2021.08.27
[JAVA] 백준 2309 일곱 난쟁이  (0) 2021.08.27
Comments