728x90
- 문제 사이트: https://www.acmicpc.net/problem/10817
세 개의 정수가 주어졌을 때, 두번째로 큰 정수를 출력해주는 문제이다.
배열에 세 수를 입력받고 정렬해준 뒤, 두 번째 값을 출력해주도록 하였다.
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n[3];
cin >> n[0] >> n[1] >> n[2];
sort(n, n + 3);
cout << n[1] << "\n";
return 0;
}
- 메모리: 2020 KB
- 시간: 0 ms
- 코드 길이: 184 B
정렬이 아니더라도, 직접 비교를 통해서도 구해줄 수 있다.
아래의 로직을 삼항 연산자 또는 if 문을 통해서 구현해주면 된다.
1) a > b && a > c 인 경우, a가 가장 큰 수이므로 b > c를 비교하여 더 큰 수를 출력
2) a > b && a < c 인 경우, a가 두번째로 큰 수이므로 a 출력
3) a < b && a > c 인 경우, a가 두번째로 큰 수이므로 a 출력
4) a < b && a < c 인 경우, a가 가장 작은 수이므로 b > c를 비교하여 더 작은 수를 출력
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
if (a > b)
{
if (a > c)
{
if (b > c)
cout << b << endl;
else
cout << c << endl;
}
else
{
cout << a << endl;
}
}
else
{
if (a > c)
{
cout << a << endl;
}
else
{
if (b > c)
cout << c << endl;
else
cout << b << endl;
}
}
return 0;
}
- 메모리: 2020 KB
- 시간: 0 ms
- 코드 길이: 606 B
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
cout << (a > b ? (a > c ? (b > c ? b : c) : a) : (a > c ? a : (b > c ? c : b))) << endl;
return 0;
}
- 메모리: 2020 KB
- 시간: 0 ms
- 코드 길이: 225 B
728x90
'Algorithm > BackJoon' 카테고리의 다른 글
1269번: 대칭 차집합 (0) | 2023.07.05 |
---|---|
10816번: 숫자 카드 2 (0) | 2023.07.04 |
24900번: 한별 찍기 (0) | 2023.07.04 |
10815번: 숫자 카드 (0) | 2023.06.28 |
11721번: 열 개씩 끊어 출력하기 (0) | 2023.06.27 |
댓글