728x90
๋ก๋ง์ธ๋ค์ ๋ก๋ง ์ซ์๋ฅผ ์ฌ์ฉํ๋ค. 1์ I, 5๋ V, 10์ X๋ก ํํํ๊ณ , I, V, X๊ฐ ๋ํ๋ด๋ ๋ฌธ์์ด์ ๊ฐ ๊ธ์๊ฐ ๋ํ๋ด๋ ์์ ํฉ์ด๋ค. ์๋ฅผ ๋ค์ด XVI = 10 + 5 + 1 = 16์ด๋ค.
๋จ, IV๋ 4์ด๊ณ IX๋ 9์ด๋ค. ์๋ฅผ ๋ค์ด IVI = 4 + 1 = 5์ด๋ค.
์์ ์์ธ์ ์ถ๊ฐ๋ก, IIV๋ 3์ด๊ณ IIX๋ 8์ด๋ผ๊ณ ํ์. ๋ฐ๋์ IIV, IIX๋ 3, 8์ด์ด์ผ ํ๋ค.
์ฆ IIV๋ 1 + 1 + 5 = 7๋ ์๋๊ณ , 1 + 4 = 5๋ ์๋๊ณ , ๋ฐ๋์ 3์ด์ด์ผ ํ๋ ๊ฒ์ด๋ค.
์ต๋ ๊ธธ์ด๊ฐ 10์ธ ๋ก๋ง ์ซ์๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง ๋ ์ด ๋ฌธ์์ด์ด ๋ํ๋ด๋ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
ํ์ค ์ ๋ ฅ์ผ๋ก ์ ๋ ฅ์ ๋ฐ๋๋ค. ์ต๋ ๊ธธ์ด๊ฐ 10์ธ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๊ณ , ์ด ๋ฌธ์์ด์ I, V, X๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค.
์ถ๋ ฅ
ํ์ค ์ถ๋ ฅ์ผ๋ก ์ซ์ ํ๋๋ฅผ ์ถ๋ ฅํ๋ค. ์ด ์๋ ์ ๋ ฅ๋ ๋ฌธ์์ด์ด ํํํ๋ ์์ด๋ค.
์์ ์ ๋ ฅ 1
XIIV
์์ ์ถ๋ ฅ 1
13
๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ๊ณผ์ ์ด๋ค!
IV๋ 4์ด๊ณ IX๋ 9์ด๋ค. & ๋ฐ๋์ IIV, IIX๋ 3, 8์ด์ด์ผ ํ๋ค.
๋ผ๋ ์กฐ๊ฑด์ด ์๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ์ฐ์ ์์๋ก ๋จผ์ ์ฒ๋ฆฌํด์ฃผ์๋ค.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// I, II, IIV, IV, V, VI, VII, IIX, IX, X
int main(){
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
vector<string> RomaNums = {"IIV", "IV", "IIX", "IX"}; // 3, 4, 8, 9
string numbers;
int cnt = 0;
cin >> numbers;
for (int i = 0; i < 4; ++i) {
int index = numbers.find(RomaNums[i]);
if (index != string::npos) {
switch(i){
case 0:
numbers.erase(numbers.begin() + index, numbers.begin() + (index + 3));
cnt += 3;
break;
case 1:
numbers.erase(numbers.begin() + index, numbers.begin() + (index + 2));
cnt += 4;
break;
case 2:
numbers.erase(numbers.begin() + index, numbers.begin() + (index + 3));
cnt += 8;
break;
case 3:
numbers.erase(numbers.begin() + index, numbers.begin() + (index + 2));
cnt += 9;
break;
}
i--;
}
}
// cout << numbers << "\n";
// cout << "count : " << cnt << "\n";
int len = numbers.length();
for (int i = 0; i < len; ++i)
{
if(numbers[i] == 'X') {
numbers.erase(numbers.begin() + i);
cnt += 10;
i--;
}
if(numbers[i] == 'V') {
numbers.erase(numbers.begin() + i);
cnt += 5;
i--;
}
if(numbers[i] == 'I') {
numbers.erase(numbers.begin() + i);
cnt += 1;
i--;
}
}
cout << cnt;
cnt = 0;
return 0;
}
728x90
'๐ ์ ๊ณต ๊ณต๋ถ > ์๊ณ ๋ฆฌ์ฆ ํด์ ๋ฐ ์ค๊ณ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ๊ทธ๋ํ - ์ต๋จ๊ฑฐ๋ฆฌ ๊ตฌํ๊ธฐ(cpp) (0) | 2023.04.11 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ์คํจ ํจ์ - ์ค๋ณต ์ต๋ ๋ถ๋ถ๋ฌธ์์ด(cpp) (0) | 2023.04.11 |
[์๊ณ ๋ฆฌ์ฆ] DP - ๊ณ๋จ ์ค๋ฅด๊ธฐ(cpp) (0) | 2023.04.11 |
[์๊ณ ๋ฆฌ์ฆ] Greedy algorithm - ์ด์งํธ ๋๋์ (cpp) (0) | 2023.02.09 |
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ์ ์ต์ ์ฑ (0) | 2023.01.16 |