반응형

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

 

파이썬에서 아스키 코드를 숫자로 변환하는 ord() 함수를 사용하면 알파벳을 매핑되는 숫자로 쉽게 변환할 수 있는 점을 이용했다.

그리고 문자열의 각 문자별 index를 쉽게 구하기 위해, enumerate()도 사용했다.

이번 문제부터 본격적으로 input()print()를 대신해서, 성능 개선을 위해 앞으로 쭉 sys.stdinsys.stdout 모듈 함수를 사용하려 한다.

(정답 코드)

import sys

lines = sys.stdin.read().splitlines()[:-1]

ans = []
for line in lines:
    sum = 0
    for i, c in enumerate(line, 1):
        if c != " ":
            sum += i * (ord(c) - ord("A") + 1)
    ans.append(str(sum))

sys.stdout.write("\n".join(ans))

반응형

+ Recent posts