• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

풀이 피드백, res 구하는 것 질문이요

22.11.06 17:28 작성 조회수 155

0

# 뒤집은 소수
def reverse(x):
    result = list(str(x))
    result = list(reversed(result))
    num = ''
    for i in result:
        num += i
    return int(num)
def isPrime(x):
    if x == 1:
        return False
    for i in range(2, x):
        if x % i == 0:
            return False
    return True
N = int(input())
num = list(map(int, input().split()))
for i in num:
    reverse_num = reverse(i)
    if isPrime(reverse_num):
        print(reverse_num, end = ' ')

reverse 함수 선생님꼐서 하신 계산식이 간단하긴 한데.. 과정은 이전에 설명해주셨다고 했는데 설명을 못들은 것 같아서요! 과정을 모르고 저 식만 보니까 잘 이해가 안갑니다.. 설명을 해주실 수 있나요?

그리고 저는 list 활용해서 뒤집고, int(num)해서 무효의 0은 없애는 과정을 취해줬는데 이렇게 하는 풀이는 어떤가요?

 

마지막으로 isPrime(x)에서 for문의 범위를 2부터 x로 두면 x//2+1 보다 불필요한 계산을 하긴 하지만 2부터 x-1 Ex) x가 16이면 2부터 15까지 나누어 떨어지는지 검증 하기 떄문에 문제는 없는걸까요?

답변 1

답변을 작성해보세요.

0

안녕하세요^^

  1. 영상 4분 45초 경부터 보시면 reverse 함수 만드는 것 설명하고 있습니다.

  2. int() 로 0을 없애주는 것 좋습니다.

  3. 불필요하게 15까지 반복할 필요는 없어보입니다.