인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

권동현님의 프로필 이미지

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

Python언어 기출문제의 변형 (v2)

58분 dic 관련 질문

해결된 질문

작성

·

77

0

  • 58분대 dict 질문입니다.

  • memo[4] = 4, memo[3] = 3, memo[2] = 2 이렇게 나와서 저장되는것 까지는 이해했습니다.

  • 그런데 왜 마지막에 {2:  2,  3:  3,  4:  4} 이렇게 저장되는지 이해가 안가서 질문드립니다.

답변 2

1

주말코딩님의 프로필 이미지
주말코딩
지식공유자

Python의 딕셔너리는 키와 값으로 되어있는 데이터 형태입니다.

예를 들어서 빈 딕셔너리 만들어보겠습니다.

empty_dict = {}

이 상태에서 데이터 안에 "name" : "WeekendCode"를 넣고 싶습니다.

이러면

empty_dict["name"] = "WeekendCode" 이렇게 데이터를 삽입합니다.

그러면 {"name" : "WeekendCode"}라는 딕셔너리 형태가 empty_dict에 담겨있을 겁니다.

 


제가 문제 뒤에서 계속 설명한 부분이 바로 그것입니다.

지금 보면 리턴값으로 합쳐서 돌려줍니다. 그 때 처음에 2를 돌려주죠.

지금은 memo[2] = 2가 되어있습니다. 그래서 최초에 {2:2}라는 데이터라는 뜻입니다.

 

그게 상위함수로 계속 리턴값을 돌려주면서 새로운 값이 추가됩니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 권동현님.

질문하신 내용은 파이썬에서 메모이제이션을 활용한 dict 사용과 관련된 것 같습니다. 메모이제이션은 반복되는 계산을 줄이기 위해 결과를 저장하는 기법입니다. 귀하께서 언급하신 {2: 2, 3: 3, 4: 4} 형태로 저장되는 이유는 각 입력값에 대한 결과가 dict의 키-값 쌍으로 저장되기 때문입니다.

즉, 재귀 호출을 통해 문제를 해결하면서 매 호출마다의 결과를 memo 딕셔너리에 저장하였고, 이는 주어진 구간의 각 계산에 대한 결과로 나타나는 것입니다. 이 방식은 이전에 계산된 결과를 필요할 때 바로 불러와 중복된 계산을 방지할 수 있도록 도와주기 때문에 효율적인 방식입니다.

관련된 유사한 질문과 답변들을 아래 링크에서 확인하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.