[C언어 코드업 문제풀이] CodeUp 1094 : [기초-1차원배열] 이상한 출석 번호 부르기2(설명)

코드업 1094번 이상한 출석 번호 부르기2 문제 풀이 해답입니다.

 

1. 문제 설명

 

정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.

학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부르는데,
영일이는 선생님이 부른 번호들을 기억하고 있다가 거꾸로 불러보는 것을 해보고 싶어졌다.

출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자.


참고
배열에 순서대로 기록해 두고, 기록된 내용을 거꾸로 출력하면 된다.

예시
int n, i;
int a[1000]={};
scanf("%d", &n); //개수 입력 받기
for(i=1; i<=n; i++) //개수 만큼 입력 받기
  scanf("%d", &a[i]); //읽어서 순서대로 배열에 넣는다.

for(i=n; i>=1; i--)
  printf("%d ", a[i]); //i 번 배열에 저장되어 있는 값 출력하기 

 

2. 입력

 

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

 

3. 출력

 

출석을 부른 번호 순서를 바꾸어 공백을 두고 출력한다. 

 

4. 입력 예시

 

10

10 4 2 3 6 6 7 9 8 5

 

5. 출력 예시

 

5 8 9 7 6 6 3 2 4 10

 

6. 문제 풀이

 

#include <stdio.h>
 
 
int main()
{
    
    int num, arr[10000];
    scanf("%d",&num);
 
    for(int i=0; i<num; i++){
        scanf("%d"&arr[i]);
    }
    for(int i=num-1; i>=0; i--){
        printf("%d ", arr[i]);
    }
    return 0;
}
 

 

입력 받은 배열을 거꾸로 출력하는 문제입니다.

 

배열을 순차적으로 입력 받았다면 그 구조는 a[0], a[1], a[2] .... a[n-1], a[n]이 될 것입니다.

이를 반대로 a[n], a[n-1], ... , a[2], a[1], a[0] 순으로 거꾸로 출력해주면 됩니다.

 

for(int i=0; i<num; i++){

        scanf("%d"&arr[i]);

}

 

입력은  scanf를 이용해 arr[i]에 직접 데이터를 입력합니다. 만약 5개의 배열에 1,2,3,4,5를 순서대로 입력했다면

 

arr[0] = 1, arr[1] =2, arr[2] = 3, arr[3] = r, arr[4] = 5 가 입력됩니다.

 

흔히 12345를 입력했으니 54321순으로 출력을 해야 한다 생각하지만 배열은 0부터 시작하므로 arr[5]가 아닌 arr[4]부터 출력을 해주어야 합니다.

 

for(int i=num-1; i>=0; i--){

        printf("%d ", arr[i]);

  }

 

을 통해 num-1 부터 0까지 반대로 배열을 출력해 줍니다.

( 물론 배열을 1부터 입력을 받아 n번째 부터 바로 역수로 출력을 할 수도 있습니다)

 

감사합니다.

댓글()