1076번 - 저항
숫자의 범위와 string 문자열을 잘 사용하면 쉽게 풀 수 있는 문제.
처음에 stoi 함수를 쓰려다가 int 범위를 벗어나는 것 같아서 , 문자 3개를 전부 입력 받고
for문에서 맨마지막 문자열부터 시작해서 숫자를 맞춰나갔다.
stoi 처럼 string 을 long long 으로 바꾸는 함수는 없는가? => 찾아보니 stoll 이 존재했다..
<정답 코드>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include<iostream> #include<string> #include<math.h> using namespace std; string om[10] = { "black","brown","red","orange","yellow","green","blue","violet","grey","white" }; int main(int argc, char** argv) { ios::sync_with_stdio(false); cin.tie(NULL); long long ans = 1; long long n; string num = ""; string s[3]; for (int i = 0; i < 3; i++) { cin >> s[i]; } for(int i=2;i>=0;i--) { for (int j = 0; j < 10; j++) { if (s[i] == om[j]) { if (i == 2) { n = (long long)(pow(10, j)); ans *= n; } else if (i == 1) { ans *= j; } else if (i == 0) { ans += j*n * 10; } break; } } } cout << ans; return 0;//정상종료시 반드시 0을 리턴해야합니다. } | cs |
반응형