반응형
어떻게 풀까?
단순한 구현문제입니다!
알파벳이 입력되었을때, 해당 알파벳에 해당하는 시간으로 변환해주는 배열을 만들면 쉽게 해결할 수 있습니다!
예를 들면, t['A'] = 3, t['B'] = 3, ... 이렇게 저장해놓으면,
UNUCIC 가 들어왔을 때 쉽게 이 문자열을 숫자로 변환해서 더해줄 수 있습니다!
코드
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 | #include<iostream> #include<cstring> using namespace std; int conv[256]; char nums[16]; int main() { for (int i = 0; i < 26; i++) { conv[i + 'A'] = i / 3 + 3; } conv['S'] = 8; conv['V'] = 9; conv['Y'] = 10; conv['Z'] = 10; ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> nums; int len = strlen(nums); int t = 0; for (int i = 0; i < len; i++) { t += conv[nums[i]]; } cout << t << endl; return 0; } | cs |
시간복잡도
시간복잡도는 O(N) 입니다!
반응형
'공부 > 알고리즘 문제풀이' 카테고리의 다른 글
[BOJ] 5623. 수열의 합 (0) | 2018.09.18 |
---|---|
[BOJ] 2789. 유학 금지 (0) | 2018.09.18 |
[BOJ] 12782. 비트 우정지수 (0) | 2018.09.04 |
[Codeforces] Manthan, Codefest 18 (rated, Div. 1 + Div. 2) (0) | 2018.09.03 |
[BOJ] 1405. 미친로봇 (0) | 2018.08.31 |