백준 17176 암호 해독기

나는야 멋쟁이·2023년 3월 17일
0

처음에 시간초과 떴던 문제.. 나는 암호문이 더 많아도 해독문의 글자 수를 다 포함한다면 되는줄 알았는데, 알고보니 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문으로 처리해주었다

profile
열심히 개발공부하기

0개의 댓글