백준(BAEKJOOB) 5597번 과제 안 내신분...? 문제 c언어
2023. 1. 8. 20:04ㆍ언어/c, c++
728x90
문제
X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다.
교수님이 내준 특별과제를 28명이 제출했는데, 그중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오.
입력
입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다.
이 문제를 풀때
조건
1. 1번부터 30번까지 출석번호
2. 28명만 제출 2명 안 낸 친구 번호 구하기
먼저 값들을 저장하기 위해서 1차원 배열을 만들어 주고
반복문을 만든다.
int a[31] = { 0, };
int num;
for (int i = 0; i < 28; i++) {
scanf("%d", &num);
a[num] = num;
}
}
입력을 받으면 바로 그 인덱스에 저장이 되게 하였다.
예를 들면 저기 값에 5를 넣으면 a [5]=5 가 저장되게 끔
총 28개만
다시 반복문을 한개 더 만들어줘서
for (int i = 1; i < 31; i++) {
if (a[i] == 0) {
printf("%d\n", i);
}
}
아까 값을 받지 못한 친구들은 0이 되니깐
0인 친구의 인덱스를 알 수 있게 된다.
총 코드
#include <stdio.h>
int main() {
int a[31] = {0,};
int num;
for (int i = 0; i < 28; i++) {
scanf("%d", &num);
a[num] = num;
}
for (int i = 1; i < 31; i++) {
if (a[i] == 0) {
printf("%d\n", i);
}
}
}
느낀 점 -
이 문제를 난이도가 엄청 쉬운 편이지만
나는 이문제를 어떻게 푸는지 감이 오지 않았다. 문제 유형을 다양하게 한번 풀어 봐야겠다고 생각했다.
728x90
'언어 > c, c++' 카테고리의 다른 글
백준(BAEKJOOB) 11399번 ATM문제 c언어 (0) | 2023.01.10 |
---|---|
백준(BAEKJOOB) 4101번 크냐?문제 c언어 (0) | 2023.01.10 |
백준(BAEKJOOB) 2750번 수 정렬하기 문제 c언어 (0) | 2023.01.08 |
백준(BAEKJOOB) 10953번 A+B-6 문제 c언어 (0) | 2023.01.07 |
백준(BAEKJOOB) 4344번 평균은 넘겠지 문제 c언어 (0) | 2023.01.07 |