본문 바로가기

Algorithm/BOJ

[BOJ-2605][구현] 줄 세우기 - Java

문제 바로가기

 

2605번: 줄 세우기

점심시간이 되면 반 학생 모두가 한 줄로 줄을 서서 급식을 탄다. 그런데 매일 같이 앞자리에 앉은 학생들이 앞에 줄을 서 먼저 점심을 먹고, 뒷자리에 앉은 학생들은 뒤에 줄을 서 늦게 점심을 �

www.acmicpc.net

 

IM 테스트를 통과하기 위해 열심히 대비 문제를 풀어봅시다.

이 문제는 정답률이 70프로가 넘습니다. 그래서 아주 쉽습니다.

문제에서 하라는 대로 하기만 하면 됩니다.

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        List<Integer> nums = new ArrayList<>();
        List<Integer> students = new ArrayList<>();

        int N = Integer.parseInt(br.readLine());

        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        for(int i = 0; i < N; i++) nums.add(Integer.parseInt(st.nextToken()));

        int idx = 1;
        for(int n : nums) {
            students.add(students.size() - n, idx++);
        }

        for(int n : students) System.out.print(n + " ");
    }
}

 

인풋을 곱게 받고, 받은 대로 넣어주면 됩니다.

List에 구현되어 있는 메소드 중에 들어갈 인덱스와 값을 파라미터로 받는 add() 메소드가 있습니다. 얘를 쓰면 끝입니다.

 

뒤에서부터 학생이 들어갈 곳을 찾아주기 때문에 students.size() - n 해주면 되겠죵. 그리고 학생 번호는 1번부터 시작한답니다.

 

마지막으로 예쁘게 출력해주면 끝!!

 

 

감사합니다 ~_~