주사위 세개
- 문제
- 풀이
- 결과
문제
풀이
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int nDice[3];
cin >> nDice[0] >> nDice[1] >> nDice[2];
// 오름차순 정렬 (sort() : 배열, 배열 바로 다음 요소를 인자로)
sort(nDice, nDice + 3);
int nTotal;
if (nDice[0] == nDice[1] && nDice[1] == nDice[2]) {
nTotal = 10000 + nDice[0] * 1000;
} else if (nDice[0] == nDice[1] || nDice[1] == nDice[2]) {
nTotal = 1000 + nDice[1] * 100;
} else {
nTotal = nDice[2] * 100;
}
cout << nTotal << endl;
return 0;
}
입력 받은 3개 값의 중복 빈도에 따른 결과값 산출 문제입니다. 일단 저는 주사위의 값을 int형 배열로 받아서 각 주사위의 값이 동일한지의 여부는 if문을 통해 구성하였고, 3개 값이 다 다른 경우에 가장 큰 값을 이용한 계산식이 세워지기 때문에 이 입력 값 중 가장 큰 값을 추출할 필요가 있습니다. 저는 algorithm 클래스에서 제공하는 sort() 메서드를 통해 배열을 오름차순 정렬하여, 제일 큰 값을 추출하는 방식을 사용했습니다. 분명 해당 클래스를 사용하지 않고도 해결할 수 있는 문제이기에 if문을 잘 활용하면 해결할 수 있는 문제인 것 같습니다.
결과
'PS > Baek-Joon C++' 카테고리의 다른 글
[백준 C++] 단계별 문제풀이 2단계 <조건문> (0) | 2024.01.24 |
---|---|
[백준 C++] 단계별 문제풀이 2단계 < 2525 : 오븐 시계 > (1) | 2024.01.24 |
[백준 C++] 단계별 문제풀이 2단계 < 2884 : 알람 시계 > (0) | 2024.01.24 |
[백준 C++] 단계별 문제풀이 2단계 < 14681 : 사분면 고르기 > (0) | 2024.01.24 |
[백준 C++] 단계별 문제풀이 2단계 < 9498 : 시험 성적 > (1) | 2024.01.24 |