처음에 시간초과 떴던 문제.. 나는 암호문이 더 많아도 해독문의 글자 수를 다 포함한다면 되는줄 알았는데, 알고보니 n으로 문자열 길이를 둘 다 제한하기에 길이는 같아야했다. 문제 이해를 잘못하고 있어서 코드가 복잡해졌었음.
n = int(input())
lis = list(map(int, input().split(" ")))
s = input()
number= []
# A~Z = 1-26 -> ord("A") - 64 / a~z = 27-52 -> ord("a") - 70
if len(s) > len(lis):
print("n")
else:
for i in s:
if i.islower():
number.append(ord(i) - 70)
elif i.isupper():
number.append(ord(i) - 64)
else:
number.append(0)
lis.sort()
number.sort()
flag = 0
for i in range(len(lis)):
if lis[i] != number[i]:
print("n")
flag = 1
break
if flag == 0:
print("y")
주석 처리한 부분은 아스키 코드로 변환하는 과정이다. 소문자, 대문자의 번호가 다르기에 if문으로 처리해주었다