관리 메뉴

솜씨좋은장씨

[BaekJoon] 3059번 : 등장하지 않는 문자의 합 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 3059번 : 등장하지 않는 문자의 합 (Python)

솜씨좋은장씨 2021. 6. 16. 00:48
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 등장하지 않는 문자의 합입니다.

 

3059번: 등장하지 않는 문자의 합

입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성되어 있고, 문자열 S가 주어진다. S는 알파벳

www.acmicpc.net

Solution

def get_not_appearing_word_sum(input_list):
    input_str_ascii_list = set([ord(char) for char in input_list])
    
    not_appearing = [num for num in range(ord('A'), ord('Z') + 1) if num not in input_str_ascii_list]
    
    return sum(not_appearing)
    

if __name__ == "__main__":
    for i in range(int(input())):
        input_list = list(input())
    
        print(get_not_appearing_word_sum(input_list))

Solution 풀이

이 문제는 문자를 아스키 코드로 변환해주는 내장 함수인 ord를 활용하면 정말 쉽게 풀 수 있습니다.

먼저 몇개의 문자열을 입력 받을 것인지 입력 받은 다음 그 수만큼 반복하면서 문자열을 입력 받습니다.

입력 받은 문자열에서 각각의 문자를 하나씩 가져와 ord를 거치게 하여 아스키 코드로 변환하여줍니다.

이를 set으로 만들어 중복된 값이 없도록 합니다.

ord('A') 부터 ord('Z') 까지의 수만큼 반복문을 돌면서 입력받은 문자의 아스키 코드가 아닌 값들만 모은다음

이를 sum으로 더한 값을 출력하면 끝!

 

SOMJANG/CODINGTEST_PRACTICE

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments