문제 설명
첫줄에 입력되는 N(1 <= N <= 17)개 만큼 다음줄에 입력되는 정수(음수, 0, 양수 모두 가능)를 입력받아 배열에 저장한다.
단, 입력되는 값은 오름차순으로 정렬된 상태로 주어지며 같은 값이 중복되어 있을수는 있다.
마지막 줄에 추가할 값을 정수로 입력 받는다.
추가될 값이 오름차순이 되도록 배열에 추가한 후 결과를 인쇄한다.
입력 예시
10
10 20 30 40 50 60 70 80 90 100
65
출력 예시
10 20 30 40 50 60 65 70 80 90 100
정답 코드
#include <stdio.h>
int n, m;
int a[18 + 2];
void input(void)
{
int i;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
scanf("%d", &m);
}
void solve(void)
{
int i;
for (i = (n - 1); i >= 0; i--)
{
a[i + 1] = a[i];
if (a[i] <= m)
{
a[(i + 1)] = m;
break;
}
}
if (i == -1)
{
a[0] = m;
}
}
void output(void)
{
int i;
for (i = 0; i < (n + 1); i++)
{
printf("%d ", a[i]);
}
}
void main(void)
{
input();
solve();
output();
}
메모
printf 내부의 \n 습관화 필요