오답노트

  • 메모리 초과가 났다.
  • 덧셈 결과만 저장해도 된다. 하지만 난 수십개의 문자열을 계속 추가 저장하다가 마지막에 개수를 세려고 했음. 

궁금한 내용

  • 숫자로 변환해서 저장하면, 덧셈 결과를 저장하지 않고 계속 추가 저장해도 메모리 초과는 나지 않는 것 같음. 문자형이 정수형에 비해 얼마나 많은 메모리를 가지고 있는가?

흐름

  • A 개수와 B 개수를 리스트에 저장
  • A는 다음 회차에서 B가 됨.  -> B의 개수는 현재 B의 개수 + 이전 회차의 A 개수
  • B는 다음 회차에서 A, B 가 됨.  -> A의 개수는 이전회차의 B의 개수

코드(초기 답안, 메모리 초과)

k = int(input())
init = 'A'
for i in range(k):
    init = init.replace('B','C')
    init = init.replace('A','B')
    init = init.replace('C','BA')

print(init.count('A'),init.count('B'))

코드(답안, 덧셈 결과만 저장하는 방식)

k = int(input())
init = [1,0]
for i in range(k):
    temp_0 = init[1]
    init[1] = init[1] + init[0]
    init[0] = temp_0

print(init[0],init[1])

+ Recent posts