반응형
https://www.acmicpc.net/problem/2693
문제
배열 A가 주어졌을 때, N번째 큰 값을 출력하는 프로그램을 작성하시오.
배열 A의 크기는 항상 10이고, 자연수만 가지고 있다. N은 항상 3이다.
입력 출력
4
1 2 3 4 5 6 7 8 9 1000 8
338 304 619 95 343 496 489 116 98 127 489
931 240 986 894 826 640 965 833 136 138 931
940 955 364 188 133 254 501 122 768 408 768
풀이
입력받을 배열을 0으로 초기화 시킨다. = a[10]={0,0};
n번을 반복시킬 반복문을 만들고
그 반복문에 10개의 수를 입력받을 반복문을 만든다.
10개의 수를 오름차순 또는 내림차순으로 정렬한뒤
배열은 a[0]부터 시작하고 3번째 큰 값을 출력해야 하므로
오름차순은 a[7], 내림차순은 a[2]로 설정한다.
코드
내림 차순 일때
#include <stdio.h>
int main() {
int a[10] = { 0, };
int n, tmp;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < 10; j++) {
scanf("%d", &a[j]);
}
for (int k = 0; k < 10; k++) {
for (int x = 0; x < 9; x++) {
if (a[x] < a[x + 1]) {
tmp = a[x];
a[x] = a[x + 1];
a[x + 1] = tmp;
}
}
}
printf("%d\n", a[2]);
}
}
|
cs |
코드 2
오름 차순 일때
#include <stdio.h>
int main() {
int a[10] = { 0, };
int n, tmp;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < 10; j++) {
scanf("%d", &a[j]);
}
for (int k = 0; k < 10; k++) {
for (int x = 0; x < 9; x++) {
if (a[x] > a[x + 1]) {
tmp = a[x];
a[x] = a[x + 1];
a[x + 1] = tmp;
}
}
}
printf("%d\n", a[7]);
}
}
|
cs |
반응형
'백준 > C' 카테고리의 다른 글
[BaeKJoon/C] 백준3058 c 짝수를 찾아라 (0) | 2021.06.25 |
---|---|
[BaeKJoon/C] 백준11006 c 남욱이의 닭장 (1) | 2021.05.23 |
[BaeKJoon/C] 백준2752 c 세수정렬 (1) | 2021.05.23 |
[BaeKJoon/C] 백준16435 c 스네이크버드 (4) | 2021.05.23 |
[BaeKJoon/C] 백준10172 c 개 (1) | 2021.05.22 |