5597 번은 반복문을 사용한 배열 문제이다.
먼저 문제부터 차근차근 봤다.
교실엔 학생이 30명 있다 , 학생 명부에는 1번부터 30번까지 출석번호가 있다.
= 배열이 있고, 배열안에 정수 30까지 있다. 하지만 배열은 1이 아닌 0부터 시작하므로 나중에 범위를 정할 때 1~31 까지 해야 하겠다.
교수님이 내준 특별과제를 28명이 제출했는데, = if 조건문을 활용하여 문제를 해결하면 되겠다! 라고 생각했다.
코드이다.
먼저 위에 적어놓은 것 처럼 학생은 30명이기 때문에, n 이라는 배열을 선언하고 배열 안에 정수는 31로 적었다.
이로써 배열안에는 1부터 30까지의 정수가 저장이 되었다.
첫번째 반복문이다. 제출한 학생은 28명이기 때문에, 이 학생들을 정수로 입력받아 저장하기로 했다.
그래서 student 라는 정수형 변수를 만들었고, n 이라는 배열안에 이 student 를 넣었다.
후에 n[student] 에 1을 저장시켰다.
두번째 반복문이다. 이제 배열에 입력값들은 저장이 되었고, 제출하지 않은 학생들을 출력만 시키면 되겠다.
i 를 반복시키는데 학생수보다 적게 반복시킨다.(30명보다 적게 반복시킨다.)
if 문을 넣었고 만약 반복되는 i 가 n[student] 가 아니라면 , i 를 출력시키게 했다.
위에 n[student]를 1로 저장해놨기 때문에(기존에 입력시켰던 출석번호들)
1부터 30까지 반복되는 n의 배열에서 student 가 빠져서 2,8 만 출력된다.
문제는 다 이해했지만 역시나 마지막에 출력시키는 부분에서 시간을 많이 썼다.
결국 구글링하여 다른 분들이 푸신 문제를 보고 성공했다.
'백준 및 코딩테스트 공부' 카테고리의 다른 글
백준 2588 자바 문제 풀이 (0) | 2024.10.18 |
---|---|
백준 2908번 자바 문제풀이 (0) | 2024.10.18 |
백준 2675번 자바 문제풀이 (0) | 2024.10.18 |
백준 10809 자바 문제풀이 (0) | 2024.10.18 |
백준 10813번 자바 (0) | 2024.10.18 |