ABOUT ME

Today
Yesterday
Total
  • section2.8 뒤집은 소수
    알고리즘 2022. 10. 24. 23:39

    N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910을 뒤집으면 19로 숫자화 해야 한다. 첫자리부터의 연속된 0은 무시한다. 뒤집는 함수인 def reverse(x)와 소수인지를 확인하는 함수 def isPrime(x)를 반드시 작성하 여 프로그래밍한다.

     

     

     

    import sys
    sys.stdin = open("input.txt", "rt")
    n = int(input())
    temp = ''
    nList = list(map(int, input().split()))
    print(nList)
    
    
    def reverse(x):
        for i in range(len(str(x))//2):
            temp = x[i] 
            x[i] = x[-(i+1)]
            x[-(i+1)] = temp
            # TypeError: 'int' object is not subscriptable
    
    print(reverse(1234))

     

    되게 자주 나오는 유형인데 풀 때마다 까먹는다

    그리고 계속 typeerror가 나는데...

    자바를 사용하다가 파이썬을 사용하려다 보니 헷갈린다

    이래도 되나? 싶어서 생략을 많이 하고 일단 해보고 있는 중

     

     

    import sys
    sys.stdin = open("input.txt", "rt")
    
    def reverse(x):
        res = 0
        while x>0:
            t = x % 10
            res = res*10 + t
            x = x // 10
        return res
    
    def isPrime(x):
        if x == 1:
            return False
        for i in range(2, x//2+1):
            if x%i==0:
                return False
        else:
            return True
    
    
    n = int(input())
    a = list(map(int, input().split()))
    
    for x in a:
        tmp = reverse(x)
        if isPrime(tmp):
            print(tmp, end=' ')

     

    문자열 뒤집기를 생각해서 슬라이싱을 하려고 했는데 숫자는 res = res*10 + t 이것만 이용하면 되는 문제였다

     

     

     

    # TypeError: 'int' object is not subscriptable
    여기서는 int는 인덱스를 갖지 않기 때문에 [i] 요소를 호출할 수 없다
     
    x가 int로 받았지만 str으로 변환해서 문제를 풀려고 했었다
    중간에 int였다가 str이였다가 왔다갔다하니까 헷갈렸다...
    그냥 다음부터는 정답처럼 코드를 짜야겠다

     

     
    728x90

    '알고리즘' 카테고리의 다른 글

    section2.10 점수 계산  (1) 2022.10.25
    section2.9 주사위 게임  (0) 2022.10.25
    section2.7 소수(에라토스테네스 체)  (0) 2022.10.24
    section2.6 자릿수의 합  (0) 2022.10.22
    section2.5 정다면체  (0) 2022.10.22
Designed by Tistory.