관리 메뉴

솜씨좋은장씨

[BaekJoon] 2153번 : 소수 단어 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 2153번 : 소수 단어 (Python)

솜씨좋은장씨 2021. 7. 3. 00:46
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 소수 단어 입니다.

 

2153번: 소수 단어

소수란 1과 자기 자신으로만 나누어떨어지는 수를 말한다. 예를 들면 1, 2, 3, 5, 17, 101, 10007 등이 소수이다. 이 문제에서는 편의상 1도 소수로 하자. 알파벳 대소문자로 이루어진 영어 단어가 하나

www.acmicpc.net

Solution

def check_is_primary_num(num):
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return "It is not a prime word."
    return "It is a prime word."

def change_word_to_num(word):
    num = 0
    
    for char in word:
        if ord('a') <= ord(char) <= ord('z'):
            num += ord(char) - 96
        elif ord('A') <= ord(char) <= ord('Z'):
            num += ord(char) - 38
    return num

if __name__ == "__main__":
    word = input()
    word_num = change_word_to_num(word)
    print(check_is_primary_num(word_num))

Solution 풀이

먼저 입력받은 문자열을 ord를 활용하여 숫자로 바꾸어줍니다.

ord('a')의 값이 97 이므로 -96을

ord('A')의 값이 65 이므로 -38을 해주어 만듭니다.

그리고 나오는 숫자들의 합이 소수인지 아닌지 판단하여 

소수이면 It is a prime word.를 소수가 아니면 It is not a prime word.를 출력하면 끝!

 

SOMJANG/CODINGTEST_PRACTICE

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

github.com

Comments