[C]코드업_1095 : [기초-1차원배열] 이상한 출석 번호 부르기3

Alal11·2022년 7월 1일
1
post-thumbnail

출처

https://www.codeup.kr/problem.php?id=1095


문제

정보 선생님은 오늘도 이상한 출석을 부른다.

영일이는 오늘도 다른 생각을 해보았다.
출석 번호를 다 부르지는 않은 것 같은데... 가장 빠른 번호가 뭐였지?

출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호를 출력해 보자.

참고
배열에 순서대로 기록해 두면, 기록된 내용을 모두 검사해 가장 작은 값을 찾아내면 된다.

그런데, 가장 작은 값은 어떻게 어떤 것과 비교하고 찾아야 할까?


입력

번호를 부른 횟수(n, 1 ~ 10000)가 첫 줄에 입력된다.
n개의 랜덤 번호(k, 1 ~ 23)가 두 번째 줄에 공백을 사이에 두고 순서대로 입력된다.


출력

출석을 부른 번호 중에 가장 빠른 번호를 1개만 출력한다.


➡️문제 분석

번호 부른 횟수(n)와 n개의 랜덤 번호를 입력한다. 그 중 가장 빠른 번호 (=가장 작은 숫자)를 출력한다.

➡️코드(⭕)

#include <stdio.h>
int main()
{
	int arr[10001] = { 0, };
	int num, min = 24;

	scanf_s("%d", &num);		// 개수 입력 받기

	for (int i = 1; i <= num; i++) {		// 개수 만큼 입력 받기
		scanf_s("%d", &arr[i]);
		if (min > arr[i]) {		// arr[i]이 min보다 작으면 min에 arr[i]을 넣어준다.
			min = arr[i];
		}
	}
	printf("%d", min);
	return 0;
}

<코드 분석>

  1. 입력 받을 개수인 num을 입력해주고, 그 수 만큼 숫자를 차례대로 배열에 입력받는다.
  1. if 문에서 arr[i]이 min보다 작으면 min에 arr[i]을 넣어주는 과정을 반복한다.
  1. 결과적으로 min이 최솟값을 가지게 되고 그 값을 출력해준다.

-> 자세한 설명은 이전 포스트 참고!


➡️end

if문을 사용하여 min보다 배열 값이 작으면 min에 대입하여 결과적으로 min이 최솟값이 된다는 방법은 정말 간단하지만 쉽게 생각하지 못했던 방법이었다. 사고의 폭을 넓힐려면 문제를 많이 풀어보는 수 밖에 없을 것 같다.

0개의 댓글