๋ฌธ์
1์์๋ถํฐ 6๊น์ง์ ๋์ ๊ฐ์ง 3๊ฐ์ ์ฃผ์ฌ์๋ฅผ ๋์ ธ์ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ ๋ฐ๋ผ ์๊ธ์ ๋ฐ๋ ๊ฒ์์ด ์๋ค.
- ๊ฐ์ ๋์ด 3๊ฐ๊ฐ ๋์ค๋ฉด 10,000์+(๊ฐ์ ๋)×1,000์์ ์๊ธ์ ๋ฐ๊ฒ ๋๋ค.
- ๊ฐ์ ๋์ด 2๊ฐ๋ง ๋์ค๋ ๊ฒฝ์ฐ์๋ 1,000์+(๊ฐ์ ๋)×100์์ ์๊ธ์ ๋ฐ๊ฒ ๋๋ค.
- ๋ชจ๋ ๋ค๋ฅธ ๋์ด ๋์ค๋ ๊ฒฝ์ฐ์๋ (๊ทธ ์ค ๊ฐ์ฅ ํฐ ๋)×100์์ ์๊ธ์ ๋ฐ๊ฒ ๋๋ค.
์๋ฅผ ๋ค์ด, 3๊ฐ์ ๋ 3, 3, 6์ด ์ฃผ์ด์ง๋ฉด ์๊ธ์ 1,000+3×100์ผ๋ก ๊ณ์ฐ๋์ด 1,300์์ ๋ฐ๊ฒ ๋๋ค. ๋ 3๊ฐ์ ๋์ด 2, 2, 2๋ก ์ฃผ์ด์ง๋ฉด 10,000+2×1,000 ์ผ๋ก ๊ณ์ฐ๋์ด 12,000์์ ๋ฐ๊ฒ ๋๋ค. 3๊ฐ์ ๋์ด 6, 2, 5๋ก ์ฃผ์ด์ง๋ฉด ๊ทธ์ค ๊ฐ์ฅ ํฐ ๊ฐ์ด 6์ด๋ฏ๋ก 6×100์ผ๋ก ๊ณ์ฐ๋์ด 600์์ ์๊ธ์ผ๋ก ๋ฐ๊ฒ ๋๋ค.
3๊ฐ ์ฃผ์ฌ์์ ๋์จ ๋์ด ์ฃผ์ด์ง ๋, ์๊ธ์ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑ ํ์์ค.
์ ๋ ฅ 1
3 3 6
์ถ๋ ฅ 2
1300
์ ๋ ฅ 2
2 2 2
์ถ๋ ฅ 2
12000
์ ๋ ฅ 3
6 2 5
์ถ๋ ฅ 3
600
์ฝ๋
#include<iostream>
using namespace std;
bool equals(int rValue,int lValue, int* outValue) {
if (rValue == lValue) {
*outValue = rValue;
return true;
}
else
return false;
}
int main() {
int firstDice, secondDice, thirdDice;
int value=0;
cin >> firstDice >> secondDice >> thirdDice;
if (firstDice == secondDice&& secondDice == thirdDice) { //๋ง์ฝ ์ธ๊ฐ๊ฐ ๊ฐ์ ๊ฐ์ด๋ฉด
cout << 10000 + firstDice * 1000;
}
else if (equals(firstDice,secondDice,&value)
|| equals(secondDice, thirdDice, &value)
|| equals(firstDice, thirdDice, &value)) { //๋ง์ฝ ๋๊ฐ๊ฐ ๊ฐ์ ๊ฐ์ด๋ฉด
cout<<1000+ value *100;
}
else {
//๊ทธ ์ค ๊ฐ์ฅ ํฐ๋
value = max(max(firstDice, secondDice), thirdDice);
cout << value * 100;
}
return 0;
}
*๊ฐ๋จํ ํด์ค*
๋จ๊ณ๋ณ๋ก ํ์ด๋ณด๊ธฐ์์ if๋ฌธ ์ฃผ์ ๋ก ์ถ๊ฐ ๋ถ๋ฅ๋ ๋ฌธ์ ์ฌ์ ํ์ด๋ณด์๋ค.
๋ง๊ทธ๋๋ก ๊ฐ๋จํ๊ฒ if-else if-else๋ฌธ์ ํตํ์ฌ ์ด 3๊ฐ์ง๋ก ๋ถ๋ฅํ๋ฉด ๋๋ค.
if (firstDice == secondDice&& secondDice == thirdDice)
์ด๋ถ๋ถ์ ์ฒซ๋ฒ์งธ ์ฃผ์ฌ์์ ๋๋ฒ์งธ ์ฃผ์ฌ์์ ์ซ์๊ฐ ๊ฐ๊ณ ๋๋ฒ์งธ ์ฃผ์ฌ์์ ์ธ๋ฒ์งธ ์ฃผ์ฌ์์ ์ซ์๊ฐ ๊ฐ์๋, 'A์ B๊ฐ ๊ฐ๊ณ B์ C๊ฐ ๊ฐ์ผ๋ฉด A์ C๋ ๊ฐ๋ค'๋ผ๋ ๊ณต๋ฆฌ๋ฅผ ํตํด ๋๊ฐ์ง์ ์๋ฆฌ๊ฐ true๊ฐ์ ๋ฐํํ๋ค๋ฉด ์์ฐ์ค๋ฝ๊ฒ ์ธ ๊ฐ์ง์ ๊ฐ์ด ๋ชจ๋ ๊ฐ์์ ์๋ฏธํ๋ค.
bool equals(int rValue,int lValue, int* outValue) {
if (rValue == lValue) {
*outValue = rValue;
return true;
}
else
return false;
}
equals()ํจ์์ ๊ฒฝ์ฐ else if๋ฌธ ์์์ ๋ง์ฝ ๋๊ฐ๊ฐ ๊ฐ์ ๊ฐ์ด๋ฉด value์ ๊ทธ ๊ฐ์ ์ง์ด๋ฃ์ด์ ์ถ๋ ฅํ ๋ ์ธ์ ์๊ฒ๋ ์ ์ํ์๋ค. ๊ทธ์ค outValue๋ง ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ ์ด์ ๋ rValue์ lValue์ ๊ฒฝ์ฐ ์์ ๋ณต์ฌ๋ฅผ ํตํด ์ซ์๊ฐ๋ง ๋ค๊ณ ์์ ๋น๊ตํ๋ฉด ๋์ง๋ง outValue์ ๊ฒฝ์ฐ ํด๋น ๊ฐ์ ๋ฃ์ด์ค์ผํ๊ธฐ๋๋ฌธ์ ๊น์ ๋ณต์ฌ๊ฐ ํ์ํด์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ์๋ค.
else {
//๊ทธ ์ค ๊ฐ์ฅ ํฐ๋
value = max(max(firstDice, secondDice), thirdDice);
cout << value * 100;
}
๋ง์ง๋ง์ผ๋ก ์ธ๊ฐ์ ๊ฐ์ด ๋ชจ๋ ๋ค๋ฅธ ๊ฒฝ์ฐ max()ํจ์๋ฅผ ํตํด ๋จผ์ ์ฒซ๋ฒ์งธ ์์ ๋๋ฒ์งธ ์์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๊ณ , ๊ทธ ๋ค์ ๋น๊ตํ ํฐ ๊ฐ๊ณผ ์ธ๋ฒ์งธ ์์ ๊ฐ์ ๋น๊ตํ์ฌ ์ ์ผ ํฐ ์๋ฅผ value์ ๋ฃ์ด์ ์ถ๋ ฅํ๋๋ก ํ์๋ค.
*์ด ๋ฐฉ๋ฒ๋ง์ด ๋ง๋ ์ ๋ต์ ์๋๋๋ค.
ํจ์ฌ ์ข๊ณ ๋น ๋ฅธ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ์ ์์ต๋๋ค.
์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถํ์๋ ๋ถ๋ค ํ์ดํ ! '0'/*
'์๊ณ ๋ฆฌ์ฆ > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] BOJ 1655๋ฒ: ๊ฐ์ด๋ฐ๋ฅผ ๋งํด์ (0) | 2022.06.08 |
---|---|
[C++] BOJ 3190๋ฒ: ๋ฑ (0) | 2022.03.25 |
[C++] BOJ 1260๋ฒ: DFS์ BFS (2) | 2022.03.11 |
[C++] BOJ 10845๋ฒ: ํ (0) | 2022.01.18 |
BOJ 1157๋ฒ: ๋จ์ด์ ๊ฐ์ (0) | 2021.01.28 |