inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

38군데 합격 비법, 2026 코딩테스트 필수 알고리즘

2-6. 링크드 리스트 문제

2-6 get_linked_list_sum 형변환으로 풀었는데

해결된 질문

142

박가

작성한 질문수 4

0

1. 현재 학습 진도

 

2. 어려움을 겪는 부분

 

3. 시도해보신 내용

def get_linked_list_sum(linked_list_1, linked_list_2):
    concat_value_1 = ""
    concat_value_2 = ""
    cur_1 = linked_list_1.head
    cur_2 = linked_list_2.head
    while cur_1 is not None:
        concat_value_1 += str(cur_1.data)
        cur_1 = cur_1.next
    while cur_2 is not None:
        concat_value_2 += str(cur_2.data)
        cur_2 = cur_2.next

    return int(concat_value_1) + int(concat_value_2)

강사님처럼 10을 곱해주는게아니라

str로 형변환해서 그냥 붙힌다음에
다시 int로 파싱해서 리턴했는데...이건 너무 야매풀이일까요..ㅠ

 

이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊

python 코딩-테스트 알고리즘 data-structure

답변 1

1

딩코딩코

안녕하세요 박가님! 좋은 질문 감사드립니다!

 

두 방식 모두 정확한 결과를 도출합니다. 따라서 "야매 풀이"라고 걱정하실 필요 없습니다! 이미 훌륭한 값을 내주신 것 같습니다.

제가 풀이한 방식을 수학적 방식, 박가님이 풀이한 방식을 문자열 방식이라고 한다면

  • 문자열 방식: 직관적이고 이해하기 쉬움. 문자열 조작을 통해 간단히 해결

     

  • 수학적 방식: 메모리 사용이 더 효율적. 문자열 변환 없이 순수 수치 계산으로 해결

     

인 것 같습니다!

따라서 제안해주신 풀이 방법도 충분히 좋은 해결책입니다!! 계속해서 이런 식으로 여러 가지 해결 방법을 고민하고 각각의 장단점을 분석하시면 좋은 개발자로 성장하실 수 있을 것 같습니다!

 

  • 추가로 왜 수학적 방식이 메모리 사용에 더 효율적인지 설명드리겠습니다

문자열 방식을 사용할 때 일어나는 일:

# [1,2,3] 링크드 리스트의 경우:
concat_value_1 += "1"  # 새로운 문자열 "1" 생성
concat_value_1 += "2"  # 새로운 문자열 "12" 생성
concat_value_1 += "3"  # 새로운 문자열 "123" 생성

파이썬에서 문자열은 불변(immutable)입니다. 그래서 문자열에 새로운 문자를 더할 때마다

  1. 새로운 문자열을 위한 메모리를 할당

  2. 기존 문자열을 복사

  3. 새 문자를 추가

  4. 이전 문자열은 가비지 컬렉션 대상이 됨

반면 수학적 방식은 다음과 같이 동작합니다.

sum = 0
# [1,2,3] 링크드 리스트의 경우:
sum = 0 * 10 + 1  # sum = 1
sum = 1 * 10 + 2  # sum = 12
sum = 12 * 10 + 3 # sum = 123

이 방식은:

  1. 단순히 하나의 정수 변수만 사용

  2. 숫자를 더하고 곱하는 연산만 수행

  3. 추가 메모리 할당이나 복사가 필요 없음

즉, 문자열 방식은 매 단계마다 새로운 문자열을 만들어내는 반면, 수학적 방식은 하나의 변수를 계속 재사용합니다. 마치 문자열 방식은 매번 새 종이에 숫자를 적어가는 것이고, 수학적 방식은 지우개로 지웠다 쓸 수 있는 화이트보드를 사용하는 것과 비슷하다고 하기 때문에 메모리에 더 효율적이라고 할 수 있습니다!

1

박가

아하~ 참조변수를 매번 할당하는거니까~ 이해했습니다. 감사합니다.

수강평 이벤트

0

34

2

코딩테스트 처음인데 이런 공부방법이어도 괜찮을까요

0

68

2

3-3 정렬-2 선택정렬 로직

0

43

2

링크드 리스트 끝에서 k번째 값 출력하기

0

46

2

LinkedList 과제 Fast, slow 포인터

0

50

2

투포인터 시간복잡도

0

53

2

수강평 작성 후 자료

0

53

2

수업교재 링크 오류

2

114

2

프로그래머스에서 제출 후 채점시 틀림ㅠ

0

133

2

1-10 알고리즘 더 풀어보기(2) 질문 있습니다

0

76

2

문제 풀이 방식 관련 질문입니다!

0

87

2

1-5 알고리즘과 친해지기 (2) - 최빈값찾기 질문 있습니다

0

93

2

수업자료 pdf 받고싶습니다

0

108

2

강의 자료 오류 수정

0

75

1

2-10 더하거나 빼거나 관련 질문입니다

0

63

2

3-8 해쉬 -2

0

49

2

Linked List Element Delete Explanation Problem

0

69

2

강의3-4 스택 탑 문제

0

74

2

코드스니펫 입출력 케이스에 오류가 있는것 같아요

0

100

3

링크드 리스트 원소 찾기 구현 방식 질문드립니다.

0

76

2

1874 - 스택 문항

0

81

2

DP Java 예제 자료형 오버플로우 문제

0

100

2

4-9 4주차 숙제중 농심라면 문제

0

111

2

DFS 에서 스택을 사용하는 이유

1

187

3