Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

joyful

[Javascript] 5597번 과제 안 내신 분..? - 백준코딩 본문

백준코딩

[Javascript] 5597번 과제 안 내신 분..? - 백준코딩

조이풀한 개발자 2023. 8. 3. 10:57

문제출처:https://www.acmicpc.net/problem/5597

 

5597번: 과제 안 내신 분..?

X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데,

www.acmicpc.net

 

 

 

문제


X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다.

교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오.

 

 

입력


입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다.

 

 

출력


출력은 2줄이다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그 다음 출석번호를 출력한다.

 

 

예제 입력


3
1
4
5
7
9
6
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
 

예제 출력


2

8

 

 

풀이

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n').map(Number);
//['3', '1', '4', '5', '7', '9', '6', '10','11', '12', '13', '14','15', '16', '17', '18','19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30']


let answerArr = ""; //정답을 담을 배열은 빈 값으로

for(let i = 0; i < 30; i++) {//출석번호 30개를 반복문으로 돌린다. 0~29
    if(input.indexOf(i + 1) < 0) { 
    //각 출석번호 + 1이 0보다 작을 때를 찾는다. 즉, 예제에 없는 수를 찾는다. 없으면 -1이라 0보다 작기 때문
        answerArr += i + 1 + "\n"; 
        //scope를 0부터 시작했으니 i 값에 +1을 해야 출석번호가 나올 것
    }
}
console.log(answerArr) //i= 1, 7

 

 

 

 


 

 

TIL

indexOf()

 

  • 내장함수
  • 문자열에서 원하는 문자열을 검색하여 찾거나, 배열에서 원하는 특정 배열값의 존재여부 등을 확인할 때 사용
  • 배열의 경우 특정 요소를 찾으면 위치값을 index로 반환
  • 특정 요소가 존재하지 않으면 -1을 반환