728x90
문제를 보자마자 어떻게 풀어야할지 생각이 딱 난다면,,,
그건 구현 문제일 가능성이 크다.
(정말 개인적인 생각)
문제에서 말하는 대로 따라가면 지난번 글과 같이 쉽게 해결 가능하다.
두 가지 방식으로 위의 문제는 해결 가능하다.
1. int형으로 정수 A,B,C 입력 받아서 비교하기
2. int형의 배열에 값 입력받아서 정렬 후 비교하기
다른 방법이 있을 수 있겠다만 나는 두 가지 밖에 생각이 안 났다.
문제에서 두 번째로 큰 정수를 출력하라고 했다.
1번 방식으로 풀게 되면 if문을 사용해서 수를 직접 비교해야겠지만,
2번 방식으로 풀게 되면 정렬해서 풀 수 있다.
나는 복잡한 건 싫다.
내장함수를 최대한 활용하겠다.
2번 방식으로 풀어보자.
배열에 값 입력하기
int ary[3];
for(int i=0;i<3;i++){
cin >> ary[i];
}
sort()를 통해 정렬하기
sort(ary,ary+3);
그리고 두 번째로 큰 정수를 출력해야하는데
지난 글에서도 말했지만 C++의 기본 정렬은 quick sort(퀵 정렬)이다.
그럼 출력할 때 몇 번째 원소를 출력해야 할까.
ary[1], 원소를 출력하면 된다.
3개의 수만 입력되어있는 배열에서 두 번째로 큰 수는
당연히 1번지에 들어있다.
전체 코드
#include <iostream>
#include <algorithm>
//세 수
using namespace std;
int main(){
int ary[3];
for(int i=0;i<3;i++){
cin >> ary[i];
}
sort(ary,ary+3);
cout << ary[1] << '\n';
}
브론즈3 난이도의 문제였다.
나도 쉽게 풀었으니, 모두가 쉽게 풀렸을 문제라고 생각한다.
꾸준하게 더 많은 문제들을 접하고 해결하고 싶다.
더 좋은 풀이가 있다면 댓글로 알려주세요 !!
피드백 환영입니다☺️
728x90
'Algorithm' 카테고리의 다른 글
[백준] 10814번 : 나이순 정렬 - C/C++ (0) | 2025.03.02 |
---|---|
[백준] 2947번 : 나무 조각 - C/C++ (0) | 2025.03.01 |
[백준] 2744번 : 대소문자 바꾸기 - C/C++ (0) | 2025.02.27 |
[백준] 2693번 : N번째 큰 수 - C/C++ (0) | 2025.02.26 |
[백준] 2577번 : 숫자의 개수 - C/C++ (0) | 2025.02.25 |