2개의 댓글이 있습니다.
-
-
amok -
c++이라면 map(또는 unordered_map)을 쓰시면 됩니다.
c++11 에서는 initializer list 를 이용해서 다음과 같이 코딩할 수 있습니다:#include <map> map<string, int> intval ={ { "zero", 0 }, { "one", 1 }, { "two", 2 }, { "three", 3 }, { "four", 4 }, { "five", 5 }, { "six", 6 }, { "seven", 7 }, { "eight", 8 }, { "nine", 9 }, { "ten", 10 }, }; map<string, int> intval2; map<string, function<int(int, int)>> f ={ { "+", [](int a, int b){ return a + b; } }, { "-", [](int a, int b){ return a - b; } }, { "*", [](int a, int b){ return a * b; } }, }; ... cin >> tmp; A = intval[tmp]; cin >> op; cin >> tmp; B = intval[tmp]; cin >> tmp; ... bool ans = f[op](A, B) == C; puts(ans ? "Yes" : "No");
8년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
ais1406
일단 풀기는 풀었습니다.. 하지만
이렇게 일일히 문자열과 숫자를 대칭시키니
코드꼴이 영 좋지않네요 가장확실한 방법인거같지만
깔끔한 방법이 있을까요? enum을 써도 어차피 저런식으로 매칭을 해야하는거 아닌가요? 문자열 비교는..
좋은 방법 추천해주세요
for 로 길이를 줄이는거 말고 다른 '방법' 이 있을까요?
8년 전