728x90
문제를 읽고 해결 과정을 순차적으로 생각해 보았다.
1. 입력받고자하는 테스트 케이스 N 입력
2. 크기가 10인 배열 선언
3. 반복문을 돌면서 배열에 값 넣기
4. 오름차순 혹은 내림차순으로 정렬
5. 결과 출력
문제 풀이 시작.
- 테스트 케이스 입력과 크기 10인 배열 선언
- 고정된 크기의 배열 ary
int n;
int ary[10];
반복문을 돌며 배열에 값은 입력하면 아래와 같다.
for(int i=0;i<n;i++){
for(int j=0;j<10;j++){
cin >> ary[j];
}
}
배열에 값을 입력했으니, 정렬을 해야한다.
정렬은 sort( , , ) 를 통해 구현할 수 있으며,
c++에서의 sort는 quick sort(퀵 정렬)로 설정되어있다.
#include <algorithm>
...
sort(ary,ary+10);
기본이 오름차순이기 때문에 우리는 출력할 때 주의해야한다.
3번째로 큰 수를 출력해야하기 때문에
배열 기준 ary[7] 7번째 수를 출력해야한다.
cout << ary[7] << '\n';
이렇게 코드를 작성할 수 있게 된다.
전체 코드
#include <iostream>
#include <algorithm>
//N번째 큰 수
using namespace std;
int n;
int ary[10];
int main(){
cin >> n;
for (int i=0;i<n;i++) {
for (int j=0;j<10;j++) {
cin >> ary[j];
}
sort(ary,ary+10);
cout << ary[7] << '\n';
}
}
브론즈1의 난이도 문제였다.
배열을 정렬할 수 있는지를 물어보는 문제였던 것 같다.
근데,, 나는 결과값이 한번에 나오도록 하고 싶은데
내가 작성한 코드는 테스트 케이스1 배열의 입력을 완료하면, 바로 결과값이 나오고
테스트 케이스2 배열의 입력 완료 시 바로 결과가 나오게 되는..
이런 형태로 출력이 되는데
다른 방법이 떠오르지 않아서 입력에 대한 출력은 제대로 나오는건 맞으니까 제출했다.
이런식의 입출력 문제가 많이 발생했었는데, 항상 통과는 되더라.
왜일까?
더 좋은 풀이가 있다면 댓글로 알려주세요 !!
피드백 환영입니다☺️
728x90
'Algorithm' 카테고리의 다른 글
[백준] 10814번 : 나이순 정렬 - C/C++ (0) | 2025.03.02 |
---|---|
[백준] 2947번 : 나무 조각 - C/C++ (0) | 2025.03.01 |
[백준] 10817번 : 세 수 - C/C++ (0) | 2025.02.28 |
[백준] 2744번 : 대소문자 바꾸기 - C/C++ (0) | 2025.02.27 |
[백준] 2577번 : 숫자의 개수 - C/C++ (0) | 2025.02.25 |