1. 문제 링크
https://www.acmicpc.net/problem/2480
2. 문제 설명
세개의 값을 입력받은 후 규칙에 따라 계산하여 출력하는 문제입니다.
3. 소스코드
BOJ 2480번 주사위 세개 C++ 풀이입니다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
vector<int> v(3);
cin >> v[0] >> v[1] >> v[2];
sort(v.begin(), v.end());
if (v[0] == v[1] && v[1] == v[2]) cout << 10000 + (v[0] * 1000);
else if (v[0] == v[1]) cout << 1000 + (v[0] * 100);
else if (v[0] == v[2]) cout << 1000 + (v[0] * 100);
else if (v[1] == v[2]) cout << 1000 + (v[1] * 100);
else cout << v[2] * 100;
return 0;
}
세개의 값 중 최댓값을 사용해야하는 경우가 있어서 vector에 입력받아 sort함수로 정렬 후 계산했습니다.
#include <iostream>
using namespace std;
int main(void)
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int a, b, c;
cin >> a >> b >> c;
if (a == b && b == c)
else if (a == b) cout << 1000 + (a * 100);
else if (b == c) cout << 1000 + (b * 100);
else if (a == c) cout << 1000 + (a * 100);
else if (a > b ?
(a > c ? out << a * 100 : cout << c * 100)
: (b > c ? cout << b * 100 : cout << c * 100))
/*
else if (a > b && a > c) cout << a * 100;
else if (b > a && b > c) cout << b * 100;
else if (c > a && c > b) cout << c * 100;
*/
return 0;
}
굳이 vector를 사용하기 싫으시면 위의 코드와 같이 풀어도 됩니다.
마지막 else if문에 최댓값을 찾기 위해 삼항연산자를 사용하였는데 이를 풀어 쓰면 아래 주석 처리한 3줄과 동일합니다.
'Algorithm > Study' 카테고리의 다른 글
[백준 2562번 C++] 최댓값 (0) | 2020.04.29 |
---|---|
[백준 2490번 C++] 윷놀이 (0) | 2020.04.29 |
[백준 2753번 C++] 윤년 (0) | 2020.04.29 |
[백준 2752번 C++] 세수정렬 (0) | 2020.04.28 |
[백준 9498번 C++] 시험 성적 (0) | 2020.04.28 |