• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

문제만 보고 미리 풀었지만 명료한 느낌이 아니에요

22.06.07 11:34 작성 조회수 129

0

문제는 풀었는데  res = res * 10 + t같이 한번에 짧게 풀 수 있는 코드를 생각못하겠어요. 아직 저는 시간이 남았지만 코테를 볼 때 즈음이면 이러한 코드를 보고 외워야 되는건지...아니면 그냥 이대로 풀어도 되는건지 모르겠습니다. 이대로 풀면 잘은 모르지만 시간복잡도나 공간복잡도 배울때 값이 엄청 클거 같아서 고쳐야 할 부분은 고쳐야 할 것 같습니다.

현재는 선생님의 코드를 보고 "아 이렇게 활용할 수 있겠다랑 이게 있었지" 하고 메모하지도 않고 다음 문제를 푸는데 앞으로 다른 선생님이나 푸신 분 들의 코드를 보고 어떠한 생각을 하고 앞으로의 문제풀이에 접근하는게 좋을까요?

밑은 제가 영상을 안보고 푼 풀이입니다.


a = int(input())
b = list(map(int, input().split()))

def reverse(x):
c = [0] * (6)
count = 0
hap = 0
while x >= 1:
c[count] = x % 10
count += 1
x = x // 10
if x < 1:
for t in range(count):
hap += c[t] * 10**(count-1-t)
return hap

def isPrime(x):
cnt = 0
for i in range(2,x):
if x % i != 0:
cnt += 1
if x == cnt + 2:
return x

t = [0]*a
for i in range(a):
t[i] = reverse(b[i])

for sd in range(len(t)):
if isPrime(t[sd]) != None:
print(isPrime(t[sd]), end=" ")
 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

위에 코드 처럼 스스로 풀어보시고 난 후 영상에서 제가 하는 방법도 익히고 본인 코드 개선할 점이 있는지 찾아보시면 됩니다. 이렇게 하다 보면 실력자가 됩니다.

알고리즘 문제풀이는 문제를 많이 풀어보면 실력을 늘게 되어 있습니다. 문제 많이 풀어보고 자기가 짠 코드 더 효율적인 코드로 리팩토링해보시는 연습 많이 하면 실력자가 되어 있을 겁니다.