해당 문제는 엑셀을 예시로 하는 문제로 행과 열의 순번이 주어졌을 때, 열의 경우 알파벳을 기준으로 나뉘는 것을 알 수 있다. 알파벳을 자리수라고 한다면 이를 26진법 수라고 생각하는게 쉬울 수 있다. 즉 값을 26으로 나눈 나머지를 자릿수의 값으로 저장하고, 다음 자리수를 기존 값에 26으로 나눈 몫에 -1을 해준다. 이때 1을 빼주는 이유는 리스트의 인덱스 값이 0부터 25까지 이므로 1을 빼준다.
그 후 해당 자리의 값을 string모둘로 받아온 대문자 리스트의 인덱스값으로 집어넣어 문자를 합치는 방식으로 진행했다.
from string import ascii_uppercase
while True:
s1 = input()
s = s1[1:]
r, c = map(int,s.split('C'))
if r == 0 and c ==0:
break
else:
c -= 1
alpha_lst = list(ascii_uppercase)
lst = []
while c >= 0:
d = c % 26
c = c // 26 -1
lst.insert(0, d)
ans =''
for x in lst:
ans += alpha_lst[x]
ans += str(r)
print(ans)