-
백준 4613번: Quicksum구현(Implementation) 2018. 7. 20. 18:58반응형
https://www.acmicpc.net/problem/4613
1. 문제
이 문제에서 당신은 Quicksum이라고 하는 checksum 알고리즘을 구현해야 한다. Quicksum 패킷은 오직 대문자와 공백으로 이루어져있다. 그리고 시작과 끝은 항상 대문자이다. 공백은 문자와 섞여있을수 있으며 연속되어서 있을수도 있다.
Quicksum은 각각의 문자의 위치와 문자 값의 합이다. 공백은 0이다. 문자는 고유의 위치값을 가지고 있는데 예를들어 A=1, B=2 ... Z=26이다.
예제 문장은 "ACM" 과 "MID CENTRAL"인데 살펴보면 다음과 같다.
ACM: 1*1 + 2*3 + 3*13 = 46
MID CENTRAL: 1*13 + 2*9 + 3*4 + 4*0 + 5*3 + 6*5 + 7*14 + 8*20 + 9*18 + 10*1 + 11*12 = 650
2. 알고리즘
키워드 - 구현
3. 코드
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include <iostream>#include <sstream>#include <string>#include <algorithm>#include <functional>#include <vector>#include <list>#include <queue>#include <deque>#include <map>#include <set>#include <stack>#include <cstring>#include <math.h>using namespace std;#define MAX_SIZE 100#define INF 0x7fffffff#define CENDL "\n"#define ll long longint main() {cin.tie(0);std::ios::sync_with_stdio(false);while (true){string s; getline(cin, s);if (s[0] == '#') {break;}int sol = 0;const int size = s.size();for (int i = 0; i<size; i++) {if (s[i] == ' ') {continue;}sol = sol + ((s[i] - 'A'+1) * (i +1));}cout << sol << CENDL;}return 0;}cs 반응형'구현(Implementation)' 카테고리의 다른 글
백준 5789번: 한다 안한다 (0) 2018.07.23 백준 5176번: 대회 자리 (0) 2018.07.23 백준 3449번: 해밍 거리 (0) 2018.07.20 백준 2145번: 숫자 놀이 (0) 2018.07.19 백준 1233번: 주사위 (0) 2018.07.19