inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

1-10. 알고리즘 더 풀어보기 (2)

시간 복잡도가 얼마나 걸리는지 확인하는 방법

해결된 질문

250

창민

작성한 질문수 4

0

1. 현재 학습 진도

 

2. 어려움을 겪는 부분

 

image.png

 

이 코드에서 for index in range(len(alphabet_occurrence_array)) 는 N이 아니라 상수이기때문에 O(1)라고 말씀해주셨는데 해당 부분이 잘 이해 가지 않습니다..

 

for문이라도 정해진 숫자의 범위가 돌면 O(n)의 시간 복잡도가 아닌건가요?

 

만약 이렇게 이해하게 되면 for char in string: 코드에서 string도 배열에 크기에 정해진 숫자만큼만 돌게 되는데.. 헷갈립니다..!

 

단순히 변수의 for문이면 n 상수의 for문이면 1 이렇게 생각하면 되는건지 궁금합니다!

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

답변 1

1

딩코딩코

안녕하세요 창민님! 좋은 질문 감사합니다 ㅎㅎ

 

시간 복잡도를 판단할 때 중요한 것은 입력값 N에 따라 어떻게 실행 시간이 변하는지입니다! 한 번 나눠서 설명드려보겠습니다.

  1. for index in range(len(alphabet_occurrence_array)) 부분 분석:

    • alphabet_occurrence_array의 길이는 항상 26(알파벳 개수)으로 고정되어 있습니다.

    • 입력 문자열의 길이가 100이든 1000이든, 이 반복문은 항상 26번만 실행됩니다.

    • 따라서 이 부분은 O(1)입니다. (상수 시간)

  2. for char in string: 부분 분석:

    • 이 반복문은 입력 문자열의 길이(N)만큼 실행됩니다.

    • 입력이 커지면 실행 횟수도 비례해서 커집니다.

    • 따라서 이 부분은 O(N)입니다.

간단한 예시로 설명해드리겠습니다:

# 예시 1: O(1) - 상수 시간
def example1(n):
    for i in range(10):  # 입력 크기와 관계없이 항상 10번 반복
        print(i)

# 예시 2: O(N) - 선형 시간
def example2(n):
    for i in range(n):   # 입력 크기에 비례해서 반복 횟수 증가
        print(i)

# 예시 3: O(1) - 상수 시간
colors = ['red', 'blue', 'green']  # 고정된 크기
for color in colors:     # 항상 3번만 반복
    print(color)

 

핵심 규칙:

  1. 반복문의 반복 횟수가 입력 크기 N과 무관하게 고정되어 있다면 → O(1)

  2. 반복문의 반복 횟수가 입력 크기 N에 비례한다면 → O(N)

따라서 원래 코드에서:

  • 알파벳 배열을 순회하는 부분은 항상 26번 실행 → O(1)

  • 문자열을 순회하는 부분은 입력 길이에 비례 → O(N)

     

즉, 창민님의 질문인

단순히 변수의 for문이면 n 상수의 for문이면 1 이렇게 생각하면 되는건지 궁금합니다!

을 답변 드리자면, 변수 여부가 아닌 입력값의 길이에 따라 변화하는지가 더 중요하다고 봐주시면 좋을 것 같습니다!


1

창민

감사합니다! 바로 이해되었습니다!

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

0

55

2

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

0

36

2

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

0

42

2

LinkedList 과제 Fast, slow 포인터

0

49

2

투포인터 시간복잡도

0

50

2

수강평 작성 후 자료

0

50

2

수업교재 링크 오류

2

106

2

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

0

127

2

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

0

69

2

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

0

81

2

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

0

85

2

수업자료 pdf 받고싶습니다

0

103

2

강의 자료 오류 수정

0

70

1

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

0

61

2

3-8 해쉬 -2

0

48

2

Linked List Element Delete Explanation Problem

0

66

2

강의3-4 스택 탑 문제

0

74

2

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

0

98

3

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

0

74

2

1874 - 스택 문항

0

80

2

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

0

97

2

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

0

107

2

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

1

183

3

들여쓰기가 햇갈리네요

0

120

2