0Pricing
Competitive Programming Academy · 강의

Big-O로 연산 횟수 세기

상수 시간부터 이차 시간까지 쉽게 이해합니다

Big-O로 연산 횟수 세기은(는) CoddyKit의 무료 Competitive Programming Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Competitive Programming Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Competitive Programming Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

연산 횟수를 세는 이유

대회에서는 속도가 중요합니다. 코드를 직접 측정하는 대신 코드가 수행하는 단계 수를 추정합니다. 이 추정치를 시간 복잡도라고 합니다. 🚀

빅오 알아보기

빅오는 입력 크기 n이 커질 때 연산 횟수가 어떻게 증가하는지 나타냅니다. 작은 세부 사항은 무시하고 지배적인 추세에 집중합니다.

상수 시간 O(1)

작업량이 n에 전혀 좌우되지 않으면 O(1)입니다. 리스트 원소 하나를 읽거나 덧셈 한 번을 수행하는 데 걸리는 시간은 항상 같습니다.

x = arr[0]
y = a + b

선형 시간 O(n)

n개의 항목을 한 번 순회하는 단순 반복문은 O(n)입니다. 입력 크기를 두 배로 늘리면 작업량도 대략 두 배가 됩니다. 일상적으로 가장 많이 쓰이는 방식입니다.

for x in arr:
    total += x

이차 시간 O(n 제곱)

n개의 항목을 대상으로 반복문 안에 반복문이 있으면 O(n^2)입니다. n = 1000이면 백만 단계이며, 그 이후로 빠르게 증가합니다.

for i in range(n):
    for j in range(n):
        check(i, j)

로그 시간 O(log n)

각 단계에서 문제 크기가 절반으로 줄어들면 O(log n)을 얻습니다. 이진 탐색은 약 30단계만으로 10억 개의 항목을 처리할 수 있습니다. ✨

증가 단계

빠른 순서부터 느린 순서로 흔히 쓰는 순서는 O(1), O(log n), O(n), O(n log n), O(n^2)입니다. 앞쪽일수록 확장성이 좋습니다.

상수 무시하기

빅오는 상수 배수를 무시하므로 O(2n)은 O(n)일 뿐입니다. 두 번 순회해도 선형으로 증가하므로 배수가 복잡도 등급을 바꾸지 않습니다.

가장 큰 항만 남기기

항을 더할 때는 가장 빠르게 증가하는 항만 고려합니다. O(n^2 + n)은 n이 커질수록 n^2이 n보다 훨씬 커지므로 O(n^2)로 단순화됩니다.

순차 반복과 중첩 반복

두 반복문을 차례로 실행하면 O(n + n) = O(n)이 됩니다. 두 반복문을 중첩하면 O(n^2)이 됩니다. 반복문의 형태가 어느 쪽인지 알려 줍니다.

최악의 경우부터

대회에서는 가장 어려운 테스트를 기준으로 판정하므로 최악의 경우를 생각해야 합니다. 반복문이 일찍 반환된다고 가정하지 말고 끝까지 실행된다고 가정하십시오.

빠른 확인

빅오 감각을 테스트해 보십시오.

복습

이제 코드를 증가율로 읽을 수 있습니다: O(1), O(n), O(n^2), O(log n). 상수는 버리고 가장 큰 항만 남기며 최악의 경우를 생각하십시오. 🎯

자주 묻는 질문

“Big-O로 연산 횟수 세기” 강의는 무료인가요?

네 — “Big-O로 연산 횟수 세기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Competitive Programming Academy 강의 전체를 잠금 해제할 수 있습니다. Competitive Programming Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“Big-O로 연산 횟수 세기”에서 뭘 배우나요?

상수 시간부터 이차 시간까지 쉽게 이해합니다 브라우저에서 직접 실행하는 실습 코드로 Competitive Programming Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Competitive Programming Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Competitive Programming Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“Big-O로 연산 횟수 세기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Competitive Programming Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Competitive Programming Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Big-O로 연산 횟수 세기
  2. 10^8 경험칙
  3. 제약 조건을 읽고 복잡도 선택하기
  4. TLE가 발생하는 이유와 발견 방법
← Competitive Programming Academy(으)로 돌아가기