[자바JAVA]1093 : [기초-1차원배열] 이상한 출석 번호 부르기1(설명)

문제 1093 : [기초-1차원배열] 이상한 출석 번호 부르기1(설명)

정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.
선생님은 출석부를 보고 번호를 부르는데,
학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다.
그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러
이름과 얼굴을 빨리 익히려고 하는 것이다.
출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.

  • 입력예시
    첫 번째 줄에 출석 번호를 부른 횟수인 정수 n이 입력된다. (1부터 10000까지)
    두 번째 줄에는 무작위로 부른 n개의 번호(1부터 23까지)가 공백을 두고 순서대로 입력된다.
1
2
10
1 3 2 2 5 6 7 4 5 9
  • 출력예시
    1번부터 번호가 불린 횟수를 순서대로 공백으로 구분하여 한 줄로 출력한다.
1
1 2 1 1 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0




코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package codeup100;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = sc.nextInt(); //출석 번호를 부른 횟수


int[] students = new int[23];
int numbers = 0;
for (int i = 0; i<count; i++) {
numbers = sc.nextInt(); //무작위로 부른 n개의 번호(1 ~ 23)
students[numbers - 1] += 1;
}
sc.close();

//출력
for (int i = 0; i < students.length; i++) {
System.out.printf("%d ", students[i]);
}
}
}




배운 지식

스캐너를 처음부터 다 입력 받으려고 하지말고 for문안에서 받고 규칙 students[numbers - 1]을 이해하는 것이 핵심이다.




다른 문제 풀이가 보고싶다면?