[C언어 코드업 문제풀이] CodeUp 1095 : [기초-1차원배열] 이상한 출석 번호 부르기3(설명)
코드업 1095번 이상한 출석 번호 부르기3 문제 풀이 해답입니다.
1. 문제 설명
정보 선생님은 오늘도 이상한 출석을 부른다.
영일이는 오늘도 다른 생각을 해보았다.
출석 번호를 다 부르지는 않은 것 같은데... 가장 빠른 번호가 뭐였지?
출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호를 출력해 보자.
참고
배열에 순서대로 기록해 두면, 기록된 내용을 모두 검사해 가장 작은 값을 찾아내면 된다.
그런데, 가장 작은 값은 어떻게 어떤 것과 비교하고 찾아야 할까?
2. 입력
번호를 부른 횟수(n, 1 ~ 10000)가 첫 줄에 입력된다.
n개의 랜덤 번호(k, 1 ~ 23)가 두 번째 줄에 공백을 사이에 두고 순서대로 입력된다.
3. 출력
출석을 부른 번호 중에 가장 빠른 번호를 1개만 출력한다.
4. 입력 예시
10
10 4 2 3 6 6 7 9 8 5
5. 출력 예시
2
6. 문제 풀이
#include<stdio.h>
int main() {
int arr[10000] = { 0, };
int num;
scanf("%d", &num);
for (int i = 0; i < num; i++) {
scanf("%d", &arr[i]);
}
int temp;
for (int i = 0; i < num; i++) {
for (int j = 0; j < num - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("%d", arr[0]);
return 0;
}
|
for문에서 번호를 부른 횟수 만큼 입력을 받을때 가장 작은 숫자만 남기면 되는 문제이지만
이번에는 배열을 이용한 문제 이므로 배열을 이용한 오름차순 정렬을 통해 가장 작은 수를 구하겠습니다.
for (int i = 0; i < num; i++) {
for (int j = 0; j < num - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
오름차순 정렬로 입력받은 배열을 정렬해주면 arr[0]이 가장 빠른(작은)번호가 되기 때문에 arr[0]을 출력해주면 됩니다.
'ET의 공부 > C언어 연습문제[ 코드업 ]' 카테고리의 다른 글
[C언어 코드업 문제풀이] CodeUp 1403 : 배열 두번 출력하기 (0) | 2020.04.05 |
---|---|
[C언어 코드업 문제풀이] CodeUp 1402 : 거꾸로 출력하기 3 (0) | 2020.04.05 |
[C언어 코드업 문제풀이] CodeUp 1094 : [기초-1차원배열] 이상한 출석 번호 부르기2(설명) (0) | 2020.04.05 |
[C언어 코드업 문제풀이] CodeUp 1093 : [기초-1차원배열] 이상한 출석 번호 부르기1(설명) (0) | 2020.04.05 |
[C언어 코드업 문제풀이] CodeUp 1677 : 종이 만들기 (0) | 2020.03.31 |