안녕하세요. 오늘은 열 순서를 알아볼 거예요.

문제

https://www.acmicpc.net/problem/16495

아이디어

A는 1, B는 2 ... Z는 26의 값을 가지고 있습니다.
이때 주어진 문자열을 26진수처럼 생각하면 됩니다.
맨 오른쪽 자릿수를 1의 자리, 그 왼쪽을 26의자리, 그 왼쪽을 26x26의 자리... 이렇게 말이죠.

소스코드

#include <iostream>
#include <string>
using namespace std;

int main(void)
{
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	long long ans = 0, len, i;
	string s;

	cin >> s; len = s.length();
	for (i = 0; i < len; i++)
	{
		ans *= 26;
		ans += s[i] - 'A' + 1;
	}
	cout << ans;
}


감사합니다.

0개의 댓글