Files
hello-algo/ko/chapter_computational_complexity/time_complexity/index.html
krahets 27bf1548b5 deploy
2026-11-05 01:48:11 +08:00

5517 lines
831 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html class="no-js" lang="ko">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width,initial-scale=1" name="viewport"/>
<meta content="애니메이션으로 설명하고 클릭 한 번으로 실행하는 자료 구조와 알고리즘 입문서" name="description"/>
<meta content="krahets" name="author"/>
<link href="https://www.hello-algo.com/ko/chapter_computational_complexity/time_complexity/" rel="canonical"/>
<link href="../iteration_and_recursion/" rel="prev"/>
<link href="../space_complexity/" rel="next"/>
<link href="/chapter_computational_complexity/time_complexity/" hreflang="zh" rel="alternate"/>
<link href="/zh-hant/chapter_computational_complexity/time_complexity/" hreflang="zh-Hant" rel="alternate"/>
<link href="/en/chapter_computational_complexity/time_complexity/" hreflang="en" rel="alternate"/>
<link href="/ja/chapter_computational_complexity/time_complexity/" hreflang="ja" rel="alternate"/>
<link href="/ru/chapter_computational_complexity/time_complexity/" hreflang="ru" rel="alternate"/>
<link href="/ko/chapter_computational_complexity/time_complexity/" hreflang="ko" rel="alternate"/>
<link href="../../assets/images/favicon.png" rel="icon"/>
<meta content="zensical-0.0.51" name="generator"/>
<title>2.3 시간 복잡도 - Hello 알고리즘</title>
<link href="../../assets/stylesheets/modern/main.62c9b9cc.min.css" rel="stylesheet"/>
<link href="../../assets/stylesheets/modern/palette.dfe2e883.min.css" rel="stylesheet"/>
<style>:root{--md-text-font:"Noto Sans KR";--md-code-font:"JetBrains Mono"}</style>
<link href="../../stylesheets/extra.css" rel="stylesheet"/>
<link href="../../stylesheets/animation_player.css" rel="stylesheet"/>
<script>__md_scope=new URL("../..",location),__md_scope.pathname.endsWith("/")||(__md_scope=new URL(__md_scope.pathname+"/",location)),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,_=__md_scope)=>JSON.parse(t.getItem(_.pathname+"."+e)),__md_set=(e,t,_=localStorage,a=__md_scope)=>{try{_.setItem(a.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
<script data-ha-shared-palette="1">
/* Share only the palette across language roots; other preferences stay scoped. */
(() => {
const get = __md_get;
const set = __md_set;
const shared = new URL("/", location);
__md_get = (key, storage = localStorage, scope = __md_scope) => {
if (key !== "__palette") return get(key, storage, scope);
let value = get(key, storage, shared);
// Adopt the current language's old preference only if none is shared yet.
if (value === null && scope.pathname !== shared.pathname) {
value = get(key, storage, scope);
if (value !== null) set(key, value, storage, shared);
}
return value;
};
__md_set = (key, value, storage = localStorage, scope = __md_scope) =>
set(key, value, storage, key === "__palette" ? shared : scope);
})();
</script>
<link href="/assets/figure-svg/css/abd17f77112eaa7224f372b6.css" rel="stylesheet"/><link href="/assets/figure-svg/css/9f909651eeceaf5c7dda140d.css" rel="stylesheet"/></head>
<body data-md-color-accent="teal" data-md-color-primary="white" data-md-color-scheme="default" dir="ltr">
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label aria-label="네비게이션" class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a class="md-skip" href="#23">
콘텐츠로 이동
</a>
</div>
<div data-md-component="announce">
<aside class="md-banner">
<div class="md-banner__inner md-grid md-typeset">
</div>
</aside>
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav aria-label="상단/헤더" class="md-header__inner md-grid">
<a aria-label="Hello 알고리즘" class="md-header__button md-logo" data-md-component="logo" href="../.." title="Hello 알고리즘">
<img alt="Hello 알고리즘" src="../../assets/images/logo.svg"/>
</a>
<label aria-label="네비게이션" class="md-header__button md-icon" for="__drawer">
<svg class="lucide lucide-menu" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 5h16M4 12h16M4 19h16"></path></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Hello 알고리즘
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
2.3   시간 복잡도
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input aria-label="어두운 테마" class="md-option" data-md-color-accent="teal" data-md-color-media="none" data-md-color-primary="white" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="어두운 테마">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M7.5 2c-1.79 1.15-3 3.18-3 5.5s1.21 4.35 3.03 5.5C4.46 13 2 10.54 2 7.5A5.5 5.5 0 0 1 7.5 2m11.57 1.5 1.43 1.43L4.93 20.5 3.5 19.07zm-6.18 2.43L11.41 5 9.97 6l.42-1.7L9 3.24l1.75-.12.58-1.65L12 3.1l1.73.03-1.35 1.13zm-3.3 3.61-1.16-.73-1.12.78.34-1.32-1.09-.83 1.36-.09.45-1.29.51 1.27 1.36.03-1.05.87zM19 13.5a5.5 5.5 0 0 1-5.5 5.5c-1.22 0-2.35-.4-3.26-1.07l7.69-7.69c.67.91 1.07 2.04 1.07 3.26m-4.4 6.58 2.77-1.15-.24 3.35zm4.33-2.7 1.15-2.77 2.2 2.54zm1.15-4.96-1.14-2.78 3.34.24zM9.63 18.93l2.77 1.15-2.53 2.19z"></path></svg>
</label>
<input aria-label="밝은 테마" class="md-option" data-md-color-accent="teal" data-md-color-media="none" data-md-color-primary="black" data-md-color-scheme="slate" id="__palette_1" name="__palette" type="radio"/>
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="밝은 테마">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M7.5 2c-1.79 1.15-3 3.18-3 5.5s1.21 4.35 3.03 5.5C4.46 13 2 10.54 2 7.5A5.5 5.5 0 0 1 7.5 2m11.57 1.5 1.43 1.43L4.93 20.5 3.5 19.07zm-6.18 2.43L11.41 5 9.97 6l.42-1.7L9 3.24l1.75-.12.58-1.65L12 3.1l1.73.03-1.35 1.13zm-3.3 3.61-1.16-.73-1.12.78.34-1.32-1.09-.83 1.36-.09.45-1.29.51 1.27 1.36.03-1.05.87zM19 13.5a5.5 5.5 0 0 1-5.5 5.5c-1.22 0-2.35-.4-3.26-1.07l7.69-7.69c.67.91 1.07 2.04 1.07 3.26m-4.4 6.58 2.77-1.15-.24 3.35zm4.33-2.7 1.15-2.77 2.2 2.54zm1.15-4.96-1.14-2.78 3.34.24zM9.63 18.93l2.77 1.15-2.53 2.19z"></path></svg>
</label>
</form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<div class="md-header__option">
<div class="md-select">
<button aria-label="언어설정" class="md-header__button md-icon">
<svg class="lucide lucide-languages" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6"></path></svg>
</button>
<div class="md-select__inner">
<ul class="md-select__list">
<li class="md-select__item">
<a class="md-select__link" href="/chapter_computational_complexity/time_complexity/" hreflang="zh">
简体中文
</a>
</li>
<li class="md-select__item">
<a class="md-select__link" href="/zh-hant/chapter_computational_complexity/time_complexity/" hreflang="zh-Hant">
繁體中文
</a>
</li>
<li class="md-select__item">
<a class="md-select__link" href="/en/chapter_computational_complexity/time_complexity/" hreflang="en">
English
</a>
</li>
<li class="md-select__item">
<a class="md-select__link" href="/ja/chapter_computational_complexity/time_complexity/" hreflang="ja">
日本語
</a>
</li>
<li class="md-select__item">
<a class="md-select__link" href="/ru/chapter_computational_complexity/time_complexity/" hreflang="ru">
Русский
</a>
</li>
<li class="md-select__item">
<a class="md-select__link" href="/ko/chapter_computational_complexity/time_complexity/" hreflang="ko">
한국어
</a>
</li>
</ul>
</div>
</div>
</div>
<label aria-label="검색" class="md-header__button md-icon" for="__search">
<svg class="lucide lucide-search" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg>
</label>
<div aria-label="검색" class="md-search" data-md-component="search" role="dialog">
<button class="md-search__button" type="button">
검색
</button>
</div>
<div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://github.com/krahets/hello-algo" title="저장소로 이동">
<div class="md-source__icon md-icon">
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2" fill="currentColor"></path></svg>
</div>
<div class="md-source__repository">
krahets/hello-algo
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav aria-label="네비게이션" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a aria-label="Hello 알고리즘" class="md-nav__button md-logo" data-md-component="logo" href="../.." title="Hello 알고리즘">
<img alt="Hello 알고리즘" src="../../assets/images/logo.svg"/>
</a>
Hello 알고리즘
</label>
<div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://github.com/krahets/hello-algo" title="저장소로 이동">
<div class="md-source__icon md-icon">
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2" fill="currentColor"></path></svg>
</div>
<div class="md-source__repository">
krahets/hello-algo
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_hello_algo/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m13.13 22.19-1.63-3.83c1.57-.58 3.04-1.36 4.4-2.27zM5.64 12.5l-3.83-1.63 6.1-2.77C7 9.46 6.22 10.93 5.64 12.5M19.22 4c.28 0 .53 0 .74.05.17 1.39-.02 4.25-3.3 7.53-1.7 1.71-3.73 3.02-6.01 3.89l-2.15-2.1c.92-2.31 2.23-4.34 3.92-6.03C15.18 4.58 17.64 4 19.22 4m0-2c-1.98 0-4.98.69-8.22 3.93-2.19 2.19-3.5 4.6-4.35 6.71-.28.75-.09 1.57.46 2.13l2.13 2.12c.38.38.89.61 1.42.61.23 0 .47-.06.7-.15A19.1 19.1 0 0 0 18.07 13c5.66-5.66 3.54-10.61 3.54-10.61S20.7 2 19.22 2m-4.68 7.46c-.78-.78-.78-2.05 0-2.83s2.05-.78 2.83 0c.77.78.78 2.05 0 2.83s-2.05.78-2.83 0m-5.66 7.07-1.41-1.41zM6.24 22l3.64-3.64c-.34-.09-.67-.24-.97-.45L4.83 22zM2 22h1.41l4.77-4.76-1.42-1.41L2 20.59zm0-2.83 4.09-4.08c-.21-.3-.36-.62-.45-.97L2 17.76z"></path></svg>
<span class="md-ellipsis">
머리말
</span>
</a>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
머리말
</label>
<ul class="md-nav__list" data-md-scrollfix="">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_2" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_preface/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M21 4H3a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2M3 19V6h8v13zm18 0h-8V6h8zm-7-9.5h6V11h-6zm0 2.5h6v1.5h-6zm0 2.5h6V16h-6z"></path></svg>
<span class="md-ellipsis">
제 0 장   들어가며
</span>
</a>
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_2_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
제 0 장   들어가며
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_preface/about_the_book/">
<span class="md-ellipsis">
0.1   이 책에 대하여
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_preface/suggestions/">
<span class="md-ellipsis">
0.2   이 책을 활용하는 방법
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_preface/summary/">
<span class="md-ellipsis">
0.3   요약
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_introduction/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m0 16H5V5h14zM6.2 7.7h5v1.5h-5zm6.8 8.1h5v1.5h-5zm0-2.6h5v1.5h-5zM8 18h1.5v-2h2v-1.5h-2v-2H8v2H6V16h2zm6.1-7.1 1.4-1.4 1.4 1.4 1.1-1-1.4-1.4L18 7.1 16.9 6l-1.4 1.4L14.1 6 13 7.1l1.4 1.4L13 9.9z"></path></svg>
<span class="md-ellipsis">
제 1 장   알고리즘과의 첫 만남
</span>
</a>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_3_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
제 1 장   알고리즘과의 첫 만남
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_introduction/algorithms_are_everywhere/">
<span class="md-ellipsis">
1.1   어디에나 있는 알고리즘
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_introduction/what_is_dsa/">
<span class="md-ellipsis">
1.2   알고리즘이란 무엇인가
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_introduction/summary/">
<span class="md-ellipsis">
1.3   요약
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_4" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M6 2h12v6l-4 4 4 4v6H6v-6l4-4-4-4zm10 14.5-4-4-4 4V20h8zm-4-5 4-4V4H8v3.5zM10 6h4v.75l-2 2-2-2z"></path></svg>
<span class="md-ellipsis">
제 2 장   복잡도 분석
</span>
</a>
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="true" aria-labelledby="__nav_4_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
제 2 장   복잡도 분석
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../performance_evaluation/">
<span class="md-ellipsis">
2.1   알고리즘 효율 평가
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../iteration_and_recursion/">
<span class="md-ellipsis">
2.2   반복과 재귀
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
2.3   시간 복잡도
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a class="md-nav__link md-nav__link--active" href="././">
<span class="md-ellipsis">
2.3   시간 복잡도
</span>
</a>
<nav aria-label="목차" class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
목차
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="#231">
<span class="md-ellipsis">
<span class="md-typeset">
2.3.1   시간의 증가 추세 계산
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#232">
<span class="md-ellipsis">
<span class="md-typeset">
2.3.2   함수의 점근적 상한
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#233">
<span class="md-ellipsis">
<span class="md-typeset">
2.3.3   계산 방법
</span>
</span>
</a>
<nav aria-label="2.3.3 계산 방법" class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a class="md-nav__link" href="#1-1">
<span class="md-ellipsis">
<span class="md-typeset">
1.   1단계: 연산 횟수 세기
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#2-2">
<span class="md-ellipsis">
<span class="md-typeset">
2.   2단계: 점근적 상한 판단
</span>
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#234">
<span class="md-ellipsis">
<span class="md-typeset">
2.3.4   대표적인 유형
</span>
</span>
</a>
<nav aria-label="2.3.4 대표적인 유형" class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a class="md-nav__link" href="#1-o1">
<span class="md-ellipsis">
<span class="md-typeset">
1.   상수 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#2-on">
<span class="md-ellipsis">
<span class="md-typeset">
2.   선형 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#3-on2">
<span class="md-ellipsis">
<span class="md-typeset">
3.   제곱 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#4-o2n">
<span class="md-ellipsis">
<span class="md-typeset">
4.   지수 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#5-olog-n">
<span class="md-ellipsis">
<span class="md-typeset">
5.   로그 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#6-on-log-n">
<span class="md-ellipsis">
<span class="md-typeset">
6.   선형 로그 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#7-on">
<span class="md-ellipsis">
<span class="md-typeset">
7.   팩토리얼 시간
</span>
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#235">
<span class="md-ellipsis">
<span class="md-typeset">
2.3.5   최악, 최선, 평균 시간 복잡도
</span>
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../space_complexity/">
<span class="md-ellipsis">
2.4   공간 복잡도
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../summary/">
<span class="md-ellipsis">
2.5   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../exercises/">
<span class="md-ellipsis">
2.6   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_data_structure/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M11 13.5v8H3v-8zm-2 2H5v4h4zM12 2l5.5 9h-11zm0 3.86L10.08 9h3.84zM17.5 13c2.5 0 4.5 2 4.5 4.5S20 22 17.5 22 13 20 13 17.5s2-4.5 4.5-4.5m0 2a2.5 2.5 0 0 0-2.5 2.5 2.5 2.5 0 0 0 2.5 2.5 2.5 2.5 0 0 0 2.5-2.5 2.5 2.5 0 0 0-2.5-2.5"></path></svg>
<span class="md-ellipsis">
제 3 장   자료 구조
</span>
</a>
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_5_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
제 3 장   자료 구조
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_data_structure/classification_of_data_structure/">
<span class="md-ellipsis">
3.1   자료 구조의 분류
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_data_structure/basic_data_types/">
<span class="md-ellipsis">
3.2   기본 자료형
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_data_structure/number_encoding/">
<span class="md-ellipsis">
3.3   수의 인코딩 *
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_data_structure/character_encoding/">
<span class="md-ellipsis">
3.4   문자 인코딩 *
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_data_structure/summary/">
<span class="md-ellipsis">
3.5   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_data_structure/exercises/">
<span class="md-ellipsis">
3.6   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_6" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_array_and_linkedlist/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 5v14h17V5zm4 2v2H5V7zm-2 6v-2h2v2zm0 2h2v2H5zm13 2H9v-2h9zm0-4H9v-2h9zm0-4H9V7h9z"></path></svg>
<span class="md-ellipsis">
제 4 장   배열과 연결 리스트
</span>
</a>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_6_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
제 4 장   배열과 연결 리스트
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_array_and_linkedlist/array/">
<span class="md-ellipsis">
4.1   배열
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_array_and_linkedlist/linked_list/">
<span class="md-ellipsis">
4.2   연결 리스트
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_array_and_linkedlist/list/">
<span class="md-ellipsis">
4.3   리스트
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_array_and_linkedlist/ram_and_cache/">
<span class="md-ellipsis">
4.4   메모리와 캐시 *
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_array_and_linkedlist/summary/">
<span class="md-ellipsis">
4.5   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_array_and_linkedlist/exercises/">
<span class="md-ellipsis">
4.6   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_7" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_stack_and_queue/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17.36 20.2v-5.38h1.79V22H3v-7.18h1.8v5.38zM6.77 14.32l.37-1.76 8.79 1.85-.37 1.76zm1.16-4.21.76-1.61 8.14 3.78-.76 1.62zm2.26-3.99 1.15-1.38 6.9 5.76-1.15 1.37zm4.45-4.25L20 9.08l-1.44 1.07-5.36-7.21zM6.59 18.41v-1.8h8.98v1.8z"></path></svg>
<span class="md-ellipsis">
제 5 장   스택과 큐
</span>
</a>
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
제 5 장   스택과 큐
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_stack_and_queue/stack/">
<span class="md-ellipsis">
5.1   스택
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_stack_and_queue/queue/">
<span class="md-ellipsis">
5.2   큐
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_stack_and_queue/deque/">
<span class="md-ellipsis">
5.3   덱
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_stack_and_queue/summary/">
<span class="md-ellipsis">
5.4   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_stack_and_queue/exercises/">
<span class="md-ellipsis">
5.5   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_hashing/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.3 17.89c1.32-2.1.7-4.89-1.41-6.21a4.52 4.52 0 0 0-6.21 1.41C10.36 15.2 11 18 13.09 19.3c1.47.92 3.33.92 4.8 0L21 22.39 22.39 21zm-2-.62c-.98.98-2.56.97-3.54 0-.97-.98-.97-2.56.01-3.54.97-.97 2.55-.97 3.53 0 .96.99.95 2.57-.03 3.54zM19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5.81a6.3 6.3 0 0 1-1.31-2H5v-4h4.18c.16-.71.43-1.39.82-2H5V8h6v2.81a6.3 6.3 0 0 1 2-1.31V8h6v2a6.499 6.499 0 0 1 2 2V6a2 2 0 0 0-2-2"></path></svg>
<span class="md-ellipsis">
제 6 장   해시 테이블
</span>
</a>
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
제 6 장   해시 테이블
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_hashing/hash_map/">
<span class="md-ellipsis">
6.1   해시 테이블
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_hashing/hash_collision/">
<span class="md-ellipsis">
6.2   해시 충돌
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_hashing/hash_algorithm/">
<span class="md-ellipsis">
6.3   해시 알고리즘
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_hashing/summary/">
<span class="md-ellipsis">
6.4   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_hashing/exercises/">
<span class="md-ellipsis">
6.5   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_9" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_tree/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.5 17c-.14 0-.26 0-.39.04L17.5 13.8c.45-.45.75-1.09.75-1.8a2.5 2.5 0 0 0-2.5-2.5c-.14 0-.25 0-.4.04L13.74 6.3c.47-.46.76-1.09.76-1.8a2.5 2.5 0 0 0-5 0c0 .7.29 1.34.76 1.79L8.65 9.54c-.15-.04-.26-.04-.4-.04a2.5 2.5 0 0 0-2.5 2.5c0 .71.29 1.34.75 1.79l-1.61 3.25C4.76 17 4.64 17 4.5 17a2.5 2.5 0 0 0 0 5A2.5 2.5 0 0 0 7 19.5c0-.7-.29-1.34-.76-1.79l1.62-3.25c.14.04.26.04.39.04s.25 0 .38-.04l1.63 3.25c-.47.45-.76 1.09-.76 1.79a2.5 2.5 0 0 0 5 0A2.5 2.5 0 0 0 12 17c-.13 0-.26 0-.39.04L10 13.8c.45-.45.75-1.09.75-1.8 0-.7-.29-1.33-.75-1.79l1.61-3.25c.13.04.26.04.39.04s.26 0 .39-.04L14 10.21a2.5 2.5 0 0 0 1.75 4.29c.13 0 .25 0 .38-.04l1.63 3.25c-.47.45-.76 1.09-.76 1.79a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0-2.5-2.5m-15 3.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m8.5-1c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1M7.25 12c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1M11 4.5c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1m3.75 7.5c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1m4.75 8.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1"></path></svg>
<span class="md-ellipsis">
제 7 장   트리
</span>
</a>
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_9_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
제 7 장   트리
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_tree/binary_tree/">
<span class="md-ellipsis">
7.1   이진 트리
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_tree/binary_tree_traversal/">
<span class="md-ellipsis">
7.2   이진 트리 순회
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_tree/array_representation_of_tree/">
<span class="md-ellipsis">
7.3   이진 트리의 배열 표현
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_tree/binary_search_tree/">
<span class="md-ellipsis">
7.4   이진 탐색 트리
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_tree/avl_tree/">
<span class="md-ellipsis">
7.5   AVL 트리 *
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_tree/summary/">
<span class="md-ellipsis">
7.6   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_tree/exercises/">
<span class="md-ellipsis">
7.7   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_10" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_heap/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 1a2.5 2.5 0 0 0-2.5 2.5A2.5 2.5 0 0 0 11 5.79V7H7a2 2 0 0 0-2 2v.71A2.5 2.5 0 0 0 3.5 12 2.5 2.5 0 0 0 5 14.29V15H4a2 2 0 0 0-2 2v1.21A2.5 2.5 0 0 0 .5 20.5 2.5 2.5 0 0 0 3 23a2.5 2.5 0 0 0 2.5-2.5A2.5 2.5 0 0 0 4 18.21V17h4v1.21a2.5 2.5 0 0 0-1.5 2.29A2.5 2.5 0 0 0 9 23a2.5 2.5 0 0 0 2.5-2.5 2.5 2.5 0 0 0-1.5-2.29V17a2 2 0 0 0-2-2H7v-.71A2.5 2.5 0 0 0 8.5 12 2.5 2.5 0 0 0 7 9.71V9h10v.71A2.5 2.5 0 0 0 15.5 12a2.5 2.5 0 0 0 1.5 2.29V15h-1a2 2 0 0 0-2 2v1.21a2.5 2.5 0 0 0-1.5 2.29A2.5 2.5 0 0 0 15 23a2.5 2.5 0 0 0 2.5-2.5 2.5 2.5 0 0 0-1.5-2.29V17h4v1.21a2.5 2.5 0 0 0-1.5 2.29A2.5 2.5 0 0 0 21 23a2.5 2.5 0 0 0 2.5-2.5 2.5 2.5 0 0 0-1.5-2.29V17a2 2 0 0 0-2-2h-1v-.71A2.5 2.5 0 0 0 20.5 12 2.5 2.5 0 0 0 19 9.71V9a2 2 0 0 0-2-2h-4V5.79a2.5 2.5 0 0 0 1.5-2.29A2.5 2.5 0 0 0 12 1m0 1.5a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1M6 11a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m12 0a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1M3 19.5a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m6 0a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m6 0a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m6 0a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1"></path></svg>
<span class="md-ellipsis">
제 8 장   힙
</span>
</a>
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_10_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_10">
<span class="md-nav__icon md-icon"></span>
제 8 장   힙
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_heap/heap/">
<span class="md-ellipsis">
8.1   힙
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_heap/build_heap/">
<span class="md-ellipsis">
8.2   힙 구성 연산
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_heap/top_k/">
<span class="md-ellipsis">
8.3   Top-k 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_heap/summary/">
<span class="md-ellipsis">
8.4   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_heap/exercises/">
<span class="md-ellipsis">
8.5   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_11" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_graph/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 5.37-.44-.06L6 14.9c.24.21.4.48.47.78h11.06c.07-.3.23-.57.47-.78l-5.56-9.59zM6.6 16.53l4.28 2.53c.29-.27.69-.43 1.12-.43s.83.16 1.12.43l4.28-2.53zM12 22a1.68 1.68 0 0 1-1.68-1.68l.09-.56-4.3-2.55c-.31.36-.76.58-1.27.58a1.68 1.68 0 0 1-1.68-1.68c0-.79.53-1.45 1.26-1.64V9.36c-.83-.11-1.47-.82-1.47-1.68A1.68 1.68 0 0 1 4.63 6c.55 0 1.03.26 1.34.66l4.41-2.53-.06-.45c0-.93.75-1.68 1.68-1.68s1.68.75 1.68 1.68l-.06.45 4.41 2.53c.31-.4.79-.66 1.34-.66a1.68 1.68 0 0 1 1.68 1.68c0 .86-.64 1.57-1.47 1.68v5.11c.73.19 1.26.85 1.26 1.64a1.68 1.68 0 0 1-1.68 1.68c-.51 0-.96-.22-1.27-.58l-4.3 2.55.09.56A1.68 1.68 0 0 1 12 22M10.8 4.86 6.3 7.44l.02.24c0 .71-.44 1.32-1.06 1.57l.03 5.25zm2.4 0 5.51 9.64.03-5.25c-.62-.25-1.06-.86-1.06-1.57l.02-.24z"></path></svg>
<span class="md-ellipsis">
제 9 장   그래프
</span>
</a>
<label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_11_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_11">
<span class="md-nav__icon md-icon"></span>
제 9 장   그래프
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_graph/graph/">
<span class="md-ellipsis">
9.1   그래프
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_graph/graph_operations/">
<span class="md-ellipsis">
9.2   그래프의 기본 연산
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_graph/graph_traversal/">
<span class="md-ellipsis">
9.3   그래프 순회
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_graph/summary/">
<span class="md-ellipsis">
9.4   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_graph/exercises/">
<span class="md-ellipsis">
9.5   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_12" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_searching/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m19.31 18.9 3.08 3.1L21 23.39l-3.12-3.07c-.69.43-1.51.68-2.38.68-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5c0 .88-.25 1.71-.69 2.4m-3.81.1a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 0 0 5M21 4v2H3V4zM3 16v-2h6v2zm0-5V9h18v2h-2.03c-1.01-.63-2.2-1-3.47-1s-2.46.37-3.47 1z"></path></svg>
<span class="md-ellipsis">
제 10 장   탐색
</span>
</a>
<label class="md-nav__link" for="__nav_12" id="__nav_12_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_12_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_12">
<span class="md-nav__icon md-icon"></span>
제 10 장   탐색
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_searching/binary_search/">
<span class="md-ellipsis">
10.1   이진 탐색
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_searching/binary_search_insertion/">
<span class="md-ellipsis">
10.2   이진 탐색으로 삽입 위치 찾기
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_searching/binary_search_edge/">
<span class="md-ellipsis">
10.3   이진 탐색으로 경계 찾기
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_searching/replace_linear_by_hashing/">
<span class="md-ellipsis">
10.4   해시를 이용한 최적화 전략
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_searching/searching_algorithm_revisited/">
<span class="md-ellipsis">
10.5   탐색 알고리즘 다시 보기
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_searching/summary/">
<span class="md-ellipsis">
10.6   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_searching/exercises/">
<span class="md-ellipsis">
10.7   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_13" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_sorting/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 17h3l-4 4-4-4h3V3h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2z"></path></svg>
<span class="md-ellipsis">
제 11 장   정렬
</span>
</a>
<label class="md-nav__link" for="__nav_13" id="__nav_13_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_13_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_13">
<span class="md-nav__icon md-icon"></span>
제 11 장   정렬
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/sorting_algorithm/">
<span class="md-ellipsis">
11.1   정렬 알고리즘
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/selection_sort/">
<span class="md-ellipsis">
11.2   선택 정렬
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/bubble_sort/">
<span class="md-ellipsis">
11.3   버블 정렬
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/insertion_sort/">
<span class="md-ellipsis">
11.4   삽입 정렬
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/quick_sort/">
<span class="md-ellipsis">
11.5   퀵 정렬
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/merge_sort/">
<span class="md-ellipsis">
11.6   병합 정렬
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/heap_sort/">
<span class="md-ellipsis">
11.7   힙 정렬
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/bucket_sort/">
<span class="md-ellipsis">
11.8   버킷 정렬
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/counting_sort/">
<span class="md-ellipsis">
11.9   계수 정렬
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/radix_sort/">
<span class="md-ellipsis">
11.10   기수 정렬
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/summary/">
<span class="md-ellipsis">
11.11   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_sorting/exercises/">
<span class="md-ellipsis">
11.12   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_14" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_divide_and_conquer/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7v2h5V7zM2 9v6h5V9zm10 0v2H9v2h3v2l3-3zm5 2v2h5v-2zm0 4v2h5v-2z"></path></svg>
<span class="md-ellipsis">
제 12 장   분할 정복
</span>
</a>
<label class="md-nav__link" for="__nav_14" id="__nav_14_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_14_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_14">
<span class="md-nav__icon md-icon"></span>
제 12 장   분할 정복
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_divide_and_conquer/divide_and_conquer/">
<span class="md-ellipsis">
12.1   분할 정복 알고리즘
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_divide_and_conquer/binary_search_recur/">
<span class="md-ellipsis">
12.2   분할 정복 탐색 전략
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_divide_and_conquer/build_binary_tree_problem/">
<span class="md-ellipsis">
12.3   이진 트리 구성 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_divide_and_conquer/hanota_problem/">
<span class="md-ellipsis">
12.4   하노이의 탑 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_divide_and_conquer/summary/">
<span class="md-ellipsis">
12.5   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_divide_and_conquer/exercises/">
<span class="md-ellipsis">
12.6   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_15" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_backtracking/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M18 15a3 3 0 0 1 3 3 3 3 0 0 1-3 3 2.99 2.99 0 0 1-2.83-2H14v-2h1.17c.41-1.17 1.52-2 2.83-2m0 2a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1m0-9a1.43 1.43 0 0 0 1.43-1.43 1.43 1.43 0 1 0-2.86 0A1.43 1.43 0 0 0 18 8m0-5.43a4 4 0 0 1 4 4C22 9.56 18 14 18 14s-4-4.44-4-7.43a4 4 0 0 1 4-4M8.83 17H10v2H8.83A2.99 2.99 0 0 1 6 21a3 3 0 0 1-3-3c0-1.31.83-2.42 2-2.83V14h2v1.17c.85.3 1.53.98 1.83 1.83M6 17a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1M6 3a3 3 0 0 1 3 3c0 1.31-.83 2.42-2 2.83V10H5V8.83A2.99 2.99 0 0 1 3 6a3 3 0 0 1 3-3m0 2a1 1 0 0 0-1 1 1 1 0 0 0 1 1 1 1 0 0 0 1-1 1 1 0 0 0-1-1m5 14v-2h2v2zm-4-6H5v-2h2z"></path></svg>
<span class="md-ellipsis">
제 13 장   백트래킹
</span>
</a>
<label class="md-nav__link" for="__nav_15" id="__nav_15_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_15_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
제 13 장   백트래킹
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_backtracking/backtracking_algorithm/">
<span class="md-ellipsis">
13.1   백트래킹 알고리즘
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_backtracking/permutations_problem/">
<span class="md-ellipsis">
13.2   모든 순열 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_backtracking/subset_sum_problem/">
<span class="md-ellipsis">
13.3   부분 집합 합 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_backtracking/n_queens_problem/">
<span class="md-ellipsis">
13.4   n-퀸 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_backtracking/summary/">
<span class="md-ellipsis">
13.5   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_backtracking/exercises/">
<span class="md-ellipsis">
13.6   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_16" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_dynamic_programming/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M22 15h-2v3c0 1.11-.89 2-2 2h-3v2l-3-3 3-3v2h3v-3h-2l3-3zm0-11v4c0 1.1-.9 2-2 2H10v10c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2M4 8h4V4H4zm0 2v4h4v-4zm4 10v-4H4v4zm6-12V4h-4v4zm6-4h-4v4h4z"></path></svg>
<span class="md-ellipsis">
제 14 장   동적 계획법
</span>
</a>
<label class="md-nav__link" for="__nav_16" id="__nav_16_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_16_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_16">
<span class="md-nav__icon md-icon"></span>
제 14 장   동적 계획법
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_dynamic_programming/intro_to_dynamic_programming/">
<span class="md-ellipsis">
14.1   동적 계획법 첫걸음
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_dynamic_programming/dp_problem_features/">
<span class="md-ellipsis">
14.2   동적 계획법 문제의 특성
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_dynamic_programming/dp_solution_pipeline/">
<span class="md-ellipsis">
14.3   동적 계획법 문제 풀이 방법
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_dynamic_programming/knapsack_problem/">
<span class="md-ellipsis">
14.4   0-1 배낭 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_dynamic_programming/unbounded_knapsack_problem/">
<span class="md-ellipsis">
14.5   무한 배낭 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_dynamic_programming/edit_distance_problem/">
<span class="md-ellipsis">
14.6   편집 거리 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_dynamic_programming/summary/">
<span class="md-ellipsis">
14.7   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_dynamic_programming/exercises/">
<span class="md-ellipsis">
14.8   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_17" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_greedy/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 3c3.88 0 7 3.14 7 7 0 2.8-1.63 5.19-4 6.31V21H9v-3H8c-1.11 0-2-.89-2-2v-3H4.5c-.42 0-.66-.5-.42-.81L6 9.66A7.003 7.003 0 0 1 13 3m0-2C8.41 1 4.61 4.42 4.06 8.9L2.5 11h-.03l-.02.03c-.55.76-.62 1.76-.19 2.59.36.69 1 1.17 1.74 1.32V16c0 1.85 1.28 3.42 3 3.87V23h11v-5.5c2.5-1.67 4-4.44 4-7.5 0-4.97-4.04-9-9-9m4 7.83c0 1.54-1.36 2.77-3.42 4.64L13 14l-.58-.53C10.36 11.6 9 10.37 9 8.83c0-1.2.96-2.19 2.16-2.2h.04c.69 0 1.35.31 1.8.83.45-.52 1.11-.83 1.8-.83 1.2-.01 2.2.96 2.2 2.16z"></path></svg>
<span class="md-ellipsis">
제 15 장   탐욕
</span>
</a>
<label class="md-nav__link" for="__nav_17" id="__nav_17_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_17_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_17">
<span class="md-nav__icon md-icon"></span>
제 15 장   탐욕
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_greedy/greedy_algorithm/">
<span class="md-ellipsis">
15.1   탐욕 알고리즘
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_greedy/fractional_knapsack_problem/">
<span class="md-ellipsis">
15.2   분할 가능한 배낭 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_greedy/max_capacity_problem/">
<span class="md-ellipsis">
15.3   최대 용량 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_greedy/max_product_cutting_problem/">
<span class="md-ellipsis">
15.4   정수 분할의 최대 곱 문제
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_greedy/summary/">
<span class="md-ellipsis">
15.5   요약
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_greedy/exercises/">
<span class="md-ellipsis">
15.6   연습 문제
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_18" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_appendix/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M11 18h2v-2h-2zm1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4"></path></svg>
<span class="md-ellipsis">
제 16 장   부록
</span>
</a>
<label class="md-nav__link" for="__nav_18" id="__nav_18_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_18_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_18">
<span class="md-nav__icon md-icon"></span>
제 16 장   부록
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_appendix/installation/">
<span class="md-ellipsis">
16.1   프로그래밍 환경 설치
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_appendix/contribution/">
<span class="md-ellipsis">
16.2   함께 만드는 책
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../../chapter_appendix/terminology/">
<span class="md-ellipsis">
16.3   용어집
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_19" type="checkbox"/>
<div class="md-nav__link md-nav__container">
<a class="md-nav__link" href="../../chapter_reference/">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9 3v15h3V3zm3 2 4 13 3-1-4-13zM5 5v13h3V5zM3 19v2h18v-2z"></path></svg>
<span class="md-ellipsis">
참고 문헌
</span>
</a>
</div>
<nav aria-expanded="false" aria-labelledby="__nav_19_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_19">
<span class="md-nav__icon md-icon"></span>
참고 문헌
</label>
<ul class="md-nav__list" data-md-scrollfix="">
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc">
<div class="md-sidebar__scrollwrap">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/>
<div class="md-sidebar-button__wrapper">
<label class="md-sidebar-button" for="__toc"></label>
</div>
<div class="md-sidebar__inner">
<nav aria-label="목차" class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
목차
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="#231">
<span class="md-ellipsis">
<span class="md-typeset">
2.3.1   시간의 증가 추세 계산
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#232">
<span class="md-ellipsis">
<span class="md-typeset">
2.3.2   함수의 점근적 상한
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#233">
<span class="md-ellipsis">
<span class="md-typeset">
2.3.3   계산 방법
</span>
</span>
</a>
<nav aria-label="2.3.3 계산 방법" class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a class="md-nav__link" href="#1-1">
<span class="md-ellipsis">
<span class="md-typeset">
1.   1단계: 연산 횟수 세기
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#2-2">
<span class="md-ellipsis">
<span class="md-typeset">
2.   2단계: 점근적 상한 판단
</span>
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#234">
<span class="md-ellipsis">
<span class="md-typeset">
2.3.4   대표적인 유형
</span>
</span>
</a>
<nav aria-label="2.3.4 대표적인 유형" class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a class="md-nav__link" href="#1-o1">
<span class="md-ellipsis">
<span class="md-typeset">
1.   상수 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#2-on">
<span class="md-ellipsis">
<span class="md-typeset">
2.   선형 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#3-on2">
<span class="md-ellipsis">
<span class="md-typeset">
3.   제곱 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#4-o2n">
<span class="md-ellipsis">
<span class="md-typeset">
4.   지수 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#5-olog-n">
<span class="md-ellipsis">
<span class="md-typeset">
5.   로그 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#6-on-log-n">
<span class="md-ellipsis">
<span class="md-typeset">
6.   선형 로그 시간
</span>
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#7-on">
<span class="md-ellipsis">
<span class="md-typeset">
7.   팩토리얼 시간
</span>
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#235">
<span class="md-ellipsis">
<span class="md-typeset">
2.3.5   최악, 최선, 평균 시간 복잡도
</span>
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<!-- Tags -->
<!-- Actions -->
<!-- Actions -->
<!-- Edit button -->
<a class="md-content__button md-icon" href="https://github.com/krahets/hello-algo/tree/main/ko/docs/chapter_computational_complexity/time_complexity.md" title="이 페이지를 편집">
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc.--><path d="M441 58.9 453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2 344 121.9l46.1 46.1-134.3 134.2c-2.9 2.9-6.5 5-10.4 6.1L186.9 325l16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25 175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25c-28.1-28.1-73.7-28.1-101.8 0M88 64c-48.6 0-88 39.4-88 88v272c0 48.6 39.4 88 88 88h272c48.6 0 88-39.4 88-88V312c0-13.3-10.7-24-24-24s-24 10.7-24 24v112c0 22.1-17.9 40-40 40H88c-22.1 0-40-17.9-40-40V152c0-22.1 17.9-40 40-40h112c13.3 0 24-10.7 24-24s-10.7-24-24-24z" fill="currentColor"></path></svg>
</a>
<!-- View button -->
<!-- Page content -->
<h1 id="23">2.3   시간 복잡도<a class="headerlink" href="#23" title="고유 링크"></a></h1>
<p>실행 시간은 알고리즘 효율을 직관적이고 정확하게 보여 준다. 코드의 실행 시간을 정확히 추정하려면 어떻게 해야 할까?</p>
<ol>
<li><strong>실행 플랫폼을 정한다</strong>. 하드웨어 구성, 프로그래밍 언어, 시스템 환경 등이 포함되며, 모두 코드의 실행 효율에 영향을 준다.</li>
<li><strong>각 연산에 필요한 실행 시간을 평가한다</strong>. 예를 들어 덧셈 연산 <code>+</code>는 1 ns, 곱셈 연산 <code>*</code>는 10 ns, 출력 연산 <code>print()</code>는 5 ns가 걸린다고 하자.</li>
<li><strong>코드에 있는 모든 연산을 센다</strong>. 그런 다음 각 연산의 실행 시간을 모두 더해 전체 실행 시간을 구한다.</li>
</ol>
<p>예를 들어 다음 코드에서 입력 데이터 크기는 <span class="arithmatex">\(n\)</span>이다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="1:13"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio"/><input id="__tabbed_1_2" name="__tabbed_1" type="radio"/><input id="__tabbed_1_3" name="__tabbed_1" type="radio"/><input id="__tabbed_1_4" name="__tabbed_1" type="radio"/><input id="__tabbed_1_5" name="__tabbed_1" type="radio"/><input id="__tabbed_1_6" name="__tabbed_1" type="radio"/><input id="__tabbed_1_7" name="__tabbed_1" type="radio"/><input id="__tabbed_1_8" name="__tabbed_1" type="radio"/><input id="__tabbed_1_9" name="__tabbed_1" type="radio"/><input id="__tabbed_1_10" name="__tabbed_1" type="radio"/><input id="__tabbed_1_11" name="__tabbed_1" type="radio"/><input id="__tabbed_1_12" name="__tabbed_1" type="radio"/><input id="__tabbed_1_13" name="__tabbed_1" type="radio"/><div class="tabbed-labels"><label for="__tabbed_1_1">Python</label><label for="__tabbed_1_2">C++</label><label for="__tabbed_1_3">Java</label><label for="__tabbed_1_4">C#</label><label for="__tabbed_1_5">Go</label><label for="__tabbed_1_6">Swift</label><label for="__tabbed_1_7">JS</label><label for="__tabbed_1_8">TS</label><label for="__tabbed_1_9">Dart</label><label for="__tabbed_1_10">Rust</label><label for="__tabbed_1_11">C</label><label for="__tabbed_1_12">Kotlin</label><label for="__tabbed_1_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1"># 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
<a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a> <span class="n">a</span> <span class="o">=</span> <span class="mi">2</span> <span class="c1"># 1 ns</span>
<a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a> <span class="n">a</span> <span class="o">=</span> <span class="n">a</span> <span class="o">+</span> <span class="mi">1</span> <span class="c1"># 1 ns</span>
<a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a> <span class="n">a</span> <span class="o">=</span> <span class="n">a</span> <span class="o">*</span> <span class="mi">2</span> <span class="c1"># 10 ns</span>
<a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a> <span class="c1"># n번 반복</span>
<a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span> <span class="c1"># 1 ns</span>
<a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a> <span class="nb">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="c1"># 5 ns</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-1-1" id="__codelineno-1-1" name="__codelineno-1-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-1-2" id="__codelineno-1-2" name="__codelineno-1-2"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-1-3" id="__codelineno-1-3" name="__codelineno-1-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-1-4" id="__codelineno-1-4" name="__codelineno-1-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-1-5" id="__codelineno-1-5" name="__codelineno-1-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-1-6" id="__codelineno-1-6" name="__codelineno-1-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-1-7" id="__codelineno-1-7" name="__codelineno-1-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-1-8" id="__codelineno-1-8" name="__codelineno-1-8"></a><span class="w"> </span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">endl</span><span class="p">;</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-1-9" id="__codelineno-1-9" name="__codelineno-1-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-1-10" id="__codelineno-1-10" name="__codelineno-1-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-2-1" id="__codelineno-2-1" name="__codelineno-2-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-2-2" id="__codelineno-2-2" name="__codelineno-2-2"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-2-3" id="__codelineno-2-3" name="__codelineno-2-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-2-4" id="__codelineno-2-4" name="__codelineno-2-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-2-5" id="__codelineno-2-5" name="__codelineno-2-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-2-6" id="__codelineno-2-6" name="__codelineno-2-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-2-7" id="__codelineno-2-7" name="__codelineno-2-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-2-8" id="__codelineno-2-8" name="__codelineno-2-8"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-2-9" id="__codelineno-2-9" name="__codelineno-2-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-2-10" id="__codelineno-2-10" name="__codelineno-2-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-3-1" id="__codelineno-3-1" name="__codelineno-3-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-3-2" id="__codelineno-3-2" name="__codelineno-3-2"></a><span class="k">void</span><span class="w"> </span><span class="nf">Algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-3-3" id="__codelineno-3-3" name="__codelineno-3-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-3-4" id="__codelineno-3-4" name="__codelineno-3-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-3-5" id="__codelineno-3-5" name="__codelineno-3-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-3-6" id="__codelineno-3-6" name="__codelineno-3-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-3-7" id="__codelineno-3-7" name="__codelineno-3-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-3-8" id="__codelineno-3-8" name="__codelineno-3-8"></a><span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-3-9" id="__codelineno-3-9" name="__codelineno-3-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-3-10" id="__codelineno-3-10" name="__codelineno-3-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-4-1" id="__codelineno-4-1" name="__codelineno-4-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-4-2" id="__codelineno-4-2" name="__codelineno-4-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">algorithm</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-4-3" id="__codelineno-4-3" name="__codelineno-4-3"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-4-4" id="__codelineno-4-4" name="__codelineno-4-4"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-4-5" id="__codelineno-4-5" name="__codelineno-4-5"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-4-6" id="__codelineno-4-6" name="__codelineno-4-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-4-7" id="__codelineno-4-7" name="__codelineno-4-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-4-8" id="__codelineno-4-8" name="__codelineno-4-8"></a><span class="w"> </span><span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-4-9" id="__codelineno-4-9" name="__codelineno-4-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-4-10" id="__codelineno-4-10" name="__codelineno-4-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-5-1" id="__codelineno-5-1" name="__codelineno-5-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-5-2" id="__codelineno-5-2" name="__codelineno-5-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-5-3" id="__codelineno-5-3" name="__codelineno-5-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">a</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-5-4" id="__codelineno-5-4" name="__codelineno-5-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-5-5" id="__codelineno-5-5" name="__codelineno-5-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-5-6" id="__codelineno-5-6" name="__codelineno-5-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-5-7" id="__codelineno-5-7" name="__codelineno-5-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-5-8" id="__codelineno-5-8" name="__codelineno-5-8"></a><span class="w"> </span><span class="bp">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-5-9" id="__codelineno-5-9" name="__codelineno-5-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-5-10" id="__codelineno-5-10" name="__codelineno-5-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-6-1" id="__codelineno-6-1" name="__codelineno-6-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-6-2" id="__codelineno-6-2" name="__codelineno-6-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-6-3" id="__codelineno-6-3" name="__codelineno-6-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-6-4" id="__codelineno-6-4" name="__codelineno-6-4"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-6-5" id="__codelineno-6-5" name="__codelineno-6-5"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-6-6" id="__codelineno-6-6" name="__codelineno-6-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-6-7" id="__codelineno-6-7" name="__codelineno-6-7"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-6-8" id="__codelineno-6-8" name="__codelineno-6-8"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-6-9" id="__codelineno-6-9" name="__codelineno-6-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-6-10" id="__codelineno-6-10" name="__codelineno-6-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-7-1" id="__codelineno-7-1" name="__codelineno-7-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-7-2" id="__codelineno-7-2" name="__codelineno-7-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="ow">void</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-7-3" id="__codelineno-7-3" name="__codelineno-7-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">a</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-7-4" id="__codelineno-7-4" name="__codelineno-7-4"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-7-5" id="__codelineno-7-5" name="__codelineno-7-5"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-7-6" id="__codelineno-7-6" name="__codelineno-7-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-7-7" id="__codelineno-7-7" name="__codelineno-7-7"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-7-8" id="__codelineno-7-8" name="__codelineno-7-8"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-7-9" id="__codelineno-7-9" name="__codelineno-7-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-7-10" id="__codelineno-7-10" name="__codelineno-7-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-8-1" id="__codelineno-8-1" name="__codelineno-8-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-8-2" id="__codelineno-8-2" name="__codelineno-8-2"></a><span class="kt">void</span><span class="w"> </span><span class="n">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-8-3" id="__codelineno-8-3" name="__codelineno-8-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-8-4" id="__codelineno-8-4" name="__codelineno-8-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-8-5" id="__codelineno-8-5" name="__codelineno-8-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-8-6" id="__codelineno-8-6" name="__codelineno-8-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-8-7" id="__codelineno-8-7" name="__codelineno-8-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-8-8" id="__codelineno-8-8" name="__codelineno-8-8"></a><span class="w"> </span><span class="n">print</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-8-9" id="__codelineno-8-9" name="__codelineno-8-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-8-10" id="__codelineno-8-10" name="__codelineno-8-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-9-1" id="__codelineno-9-1" name="__codelineno-9-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-9-2" id="__codelineno-9-2" name="__codelineno-9-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-9-3" id="__codelineno-9-3" name="__codelineno-9-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-9-4" id="__codelineno-9-4" name="__codelineno-9-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-9-5" id="__codelineno-9-5" name="__codelineno-9-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-9-6" id="__codelineno-9-6" name="__codelineno-9-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-9-7" id="__codelineno-9-7" name="__codelineno-9-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-9-8" id="__codelineno-9-8" name="__codelineno-9-8"></a><span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-9-9" id="__codelineno-9-9" name="__codelineno-9-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-9-10" id="__codelineno-9-10" name="__codelineno-9-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-10-1" id="__codelineno-10-1" name="__codelineno-10-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-10-2" id="__codelineno-10-2" name="__codelineno-10-2"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-10-3" id="__codelineno-10-3" name="__codelineno-10-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-10-4" id="__codelineno-10-4" name="__codelineno-10-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-10-5" id="__codelineno-10-5" name="__codelineno-10-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-10-6" id="__codelineno-10-6" name="__codelineno-10-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-10-7" id="__codelineno-10-7" name="__codelineno-10-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-10-8" id="__codelineno-10-8" name="__codelineno-10-8"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-10-9" id="__codelineno-10-9" name="__codelineno-10-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-10-10" id="__codelineno-10-10" name="__codelineno-10-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-11-1" id="__codelineno-11-1" name="__codelineno-11-1"></a><span class="c1">// 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-11-2" id="__codelineno-11-2" name="__codelineno-11-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-11-3" id="__codelineno-11-3" name="__codelineno-11-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-11-4" id="__codelineno-11-4" name="__codelineno-11-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-11-5" id="__codelineno-11-5" name="__codelineno-11-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a href="#__codelineno-11-6" id="__codelineno-11-6" name="__codelineno-11-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-11-7" id="__codelineno-11-7" name="__codelineno-11-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a href="#__codelineno-11-8" id="__codelineno-11-8" name="__codelineno-11-8"></a><span class="w"> </span><span class="n">println</span><span class="p">(</span><span class="m">0</span><span class="p">)</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a href="#__codelineno-11-9" id="__codelineno-11-9" name="__codelineno-11-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-11-10" id="__codelineno-11-10" name="__codelineno-11-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-12-1" id="__codelineno-12-1" name="__codelineno-12-1"></a><span class="c1"># 어떤 실행 플랫폼에서</span>
<a href="#__codelineno-12-2" id="__codelineno-12-2" name="__codelineno-12-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-12-3" id="__codelineno-12-3" name="__codelineno-12-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="c1"># 1 ns</span>
<a href="#__codelineno-12-4" id="__codelineno-12-4" name="__codelineno-12-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1"># 1 ns</span>
<a href="#__codelineno-12-5" id="__codelineno-12-5" name="__codelineno-12-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="c1"># 10 ns</span>
<a href="#__codelineno-12-6" id="__codelineno-12-6" name="__codelineno-12-6"></a><span class="w"> </span><span class="c1"># n번 반복</span>
<a href="#__codelineno-12-7" id="__codelineno-12-7" name="__codelineno-12-7"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="n">n</span><span class="p">)</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="c1"># 1 ns</span>
<a href="#__codelineno-12-8" id="__codelineno-12-8" name="__codelineno-12-8"></a><span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="c1"># 5 ns</span>
<a href="#__codelineno-12-9" id="__codelineno-12-9" name="__codelineno-12-9"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-12-10" id="__codelineno-12-10" name="__codelineno-12-10"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<p>위 방법으로 구한 알고리즘의 실행 시간은 <span class="arithmatex">\((6n + 12)\)</span> ns다.</p>
<div class="arithmatex">\[
1 + 1 + 10 + (1 + 5) \times n = 6n + 12
\]</div>
<p>그러나 실제로 <strong>알고리즘의 실행 시간을 이렇게 계산하는 것은 합리적이지도 현실적이지도 않다</strong>. 우선 알고리즘은 여러 플랫폼에서 실행되어야 하므로 추정 시간을 특정 실행 플랫폼에 묶고 싶지 않다. 또한 각 연산의 실행 시간을 알아내기 어려워 추정 과정이 매우 복잡해진다.</p>
<h2 id="231">2.3.1   시간의 증가 추세 계산<a class="headerlink" href="#231" title="고유 링크"></a></h2>
<p>시간 복잡도 분석이 계산하는 것은 알고리즘 실행 시간 자체가 아니라, <strong>데이터 양이 많아질 때 알고리즘 실행 시간이 증가하는 추세다</strong>.</p>
<p>‘시간의 증가 추세’는 추상적인 개념이므로 예를 통해 이해해 보자. 입력 데이터 크기가 <span class="arithmatex">\(n\)</span>이고, 세 알고리즘 <code>A</code>, <code>B</code>, <code>C</code>가 주어졌다고 하자.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="2:13"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio"/><input id="__tabbed_2_2" name="__tabbed_2" type="radio"/><input id="__tabbed_2_3" name="__tabbed_2" type="radio"/><input id="__tabbed_2_4" name="__tabbed_2" type="radio"/><input id="__tabbed_2_5" name="__tabbed_2" type="radio"/><input id="__tabbed_2_6" name="__tabbed_2" type="radio"/><input id="__tabbed_2_7" name="__tabbed_2" type="radio"/><input id="__tabbed_2_8" name="__tabbed_2" type="radio"/><input id="__tabbed_2_9" name="__tabbed_2" type="radio"/><input id="__tabbed_2_10" name="__tabbed_2" type="radio"/><input id="__tabbed_2_11" name="__tabbed_2" type="radio"/><input id="__tabbed_2_12" name="__tabbed_2" type="radio"/><input id="__tabbed_2_13" name="__tabbed_2" type="radio"/><div class="tabbed-labels"><label for="__tabbed_2_1">Python</label><label for="__tabbed_2_2">C++</label><label for="__tabbed_2_3">Java</label><label for="__tabbed_2_4">C#</label><label for="__tabbed_2_5">Go</label><label for="__tabbed_2_6">Swift</label><label for="__tabbed_2_7">JS</label><label for="__tabbed_2_8">TS</label><label for="__tabbed_2_9">Dart</label><label for="__tabbed_2_10">Rust</label><label for="__tabbed_2_11">C</label><label for="__tabbed_2_12">Kotlin</label><label for="__tabbed_2_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-13-1" id="__codelineno-13-1" name="__codelineno-13-1"></a><span class="c1"># 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-13-2" id="__codelineno-13-2" name="__codelineno-13-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm_A</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
<a href="#__codelineno-13-3" id="__codelineno-13-3" name="__codelineno-13-3"></a> <span class="nb">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-13-4" id="__codelineno-13-4" name="__codelineno-13-4"></a><span class="c1"># 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-13-5" id="__codelineno-13-5" name="__codelineno-13-5"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm_B</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
<a href="#__codelineno-13-6" id="__codelineno-13-6" name="__codelineno-13-6"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
<a href="#__codelineno-13-7" id="__codelineno-13-7" name="__codelineno-13-7"></a> <span class="nb">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-13-8" id="__codelineno-13-8" name="__codelineno-13-8"></a><span class="c1"># 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-13-9" id="__codelineno-13-9" name="__codelineno-13-9"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm_C</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
<a href="#__codelineno-13-10" id="__codelineno-13-10" name="__codelineno-13-10"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1000000</span><span class="p">):</span>
<a href="#__codelineno-13-11" id="__codelineno-13-11" name="__codelineno-13-11"></a> <span class="nb">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-14-1" id="__codelineno-14-1" name="__codelineno-14-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-14-2" id="__codelineno-14-2" name="__codelineno-14-2"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm_A</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-14-3" id="__codelineno-14-3" name="__codelineno-14-3"></a><span class="w"> </span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">endl</span><span class="p">;</span>
<a href="#__codelineno-14-4" id="__codelineno-14-4" name="__codelineno-14-4"></a><span class="p">}</span>
<a href="#__codelineno-14-5" id="__codelineno-14-5" name="__codelineno-14-5"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-14-6" id="__codelineno-14-6" name="__codelineno-14-6"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm_B</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-14-7" id="__codelineno-14-7" name="__codelineno-14-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-14-8" id="__codelineno-14-8" name="__codelineno-14-8"></a><span class="w"> </span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">endl</span><span class="p">;</span>
<a href="#__codelineno-14-9" id="__codelineno-14-9" name="__codelineno-14-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-14-10" id="__codelineno-14-10" name="__codelineno-14-10"></a><span class="p">}</span>
<a href="#__codelineno-14-11" id="__codelineno-14-11" name="__codelineno-14-11"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-14-12" id="__codelineno-14-12" name="__codelineno-14-12"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm_C</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-14-13" id="__codelineno-14-13" name="__codelineno-14-13"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">1000000</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-14-14" id="__codelineno-14-14" name="__codelineno-14-14"></a><span class="w"> </span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">endl</span><span class="p">;</span>
<a href="#__codelineno-14-15" id="__codelineno-14-15" name="__codelineno-14-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-14-16" id="__codelineno-14-16" name="__codelineno-14-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-15-1" id="__codelineno-15-1" name="__codelineno-15-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-15-2" id="__codelineno-15-2" name="__codelineno-15-2"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm_A</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-15-3" id="__codelineno-15-3" name="__codelineno-15-3"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-15-4" id="__codelineno-15-4" name="__codelineno-15-4"></a><span class="p">}</span>
<a href="#__codelineno-15-5" id="__codelineno-15-5" name="__codelineno-15-5"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-15-6" id="__codelineno-15-6" name="__codelineno-15-6"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm_B</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-15-7" id="__codelineno-15-7" name="__codelineno-15-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-15-8" id="__codelineno-15-8" name="__codelineno-15-8"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-15-9" id="__codelineno-15-9" name="__codelineno-15-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-15-10" id="__codelineno-15-10" name="__codelineno-15-10"></a><span class="p">}</span>
<a href="#__codelineno-15-11" id="__codelineno-15-11" name="__codelineno-15-11"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-15-12" id="__codelineno-15-12" name="__codelineno-15-12"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm_C</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-15-13" id="__codelineno-15-13" name="__codelineno-15-13"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">1000000</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-15-14" id="__codelineno-15-14" name="__codelineno-15-14"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-15-15" id="__codelineno-15-15" name="__codelineno-15-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-15-16" id="__codelineno-15-16" name="__codelineno-15-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-16-1" id="__codelineno-16-1" name="__codelineno-16-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-16-2" id="__codelineno-16-2" name="__codelineno-16-2"></a><span class="k">void</span><span class="w"> </span><span class="nf">AlgorithmA</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-16-3" id="__codelineno-16-3" name="__codelineno-16-3"></a><span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-16-4" id="__codelineno-16-4" name="__codelineno-16-4"></a><span class="p">}</span>
<a href="#__codelineno-16-5" id="__codelineno-16-5" name="__codelineno-16-5"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-16-6" id="__codelineno-16-6" name="__codelineno-16-6"></a><span class="k">void</span><span class="w"> </span><span class="nf">AlgorithmB</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-16-7" id="__codelineno-16-7" name="__codelineno-16-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-16-8" id="__codelineno-16-8" name="__codelineno-16-8"></a><span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-16-9" id="__codelineno-16-9" name="__codelineno-16-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-16-10" id="__codelineno-16-10" name="__codelineno-16-10"></a><span class="p">}</span>
<a href="#__codelineno-16-11" id="__codelineno-16-11" name="__codelineno-16-11"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-16-12" id="__codelineno-16-12" name="__codelineno-16-12"></a><span class="k">void</span><span class="w"> </span><span class="nf">AlgorithmC</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-16-13" id="__codelineno-16-13" name="__codelineno-16-13"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">1000000</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-16-14" id="__codelineno-16-14" name="__codelineno-16-14"></a><span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-16-15" id="__codelineno-16-15" name="__codelineno-16-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-16-16" id="__codelineno-16-16" name="__codelineno-16-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-17-1" id="__codelineno-17-1" name="__codelineno-17-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-17-2" id="__codelineno-17-2" name="__codelineno-17-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">algorithm_A</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-17-3" id="__codelineno-17-3" name="__codelineno-17-3"></a><span class="w"> </span><span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-17-4" id="__codelineno-17-4" name="__codelineno-17-4"></a><span class="p">}</span>
<a href="#__codelineno-17-5" id="__codelineno-17-5" name="__codelineno-17-5"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-17-6" id="__codelineno-17-6" name="__codelineno-17-6"></a><span class="kd">func</span><span class="w"> </span><span class="nx">algorithm_B</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-17-7" id="__codelineno-17-7" name="__codelineno-17-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-17-8" id="__codelineno-17-8" name="__codelineno-17-8"></a><span class="w"> </span><span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-17-9" id="__codelineno-17-9" name="__codelineno-17-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-17-10" id="__codelineno-17-10" name="__codelineno-17-10"></a><span class="p">}</span>
<a href="#__codelineno-17-11" id="__codelineno-17-11" name="__codelineno-17-11"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-17-12" id="__codelineno-17-12" name="__codelineno-17-12"></a><span class="kd">func</span><span class="w"> </span><span class="nx">algorithm_C</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-17-13" id="__codelineno-17-13" name="__codelineno-17-13"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">1000000</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-17-14" id="__codelineno-17-14" name="__codelineno-17-14"></a><span class="w"> </span><span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-17-15" id="__codelineno-17-15" name="__codelineno-17-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-17-16" id="__codelineno-17-16" name="__codelineno-17-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-18-1" id="__codelineno-18-1" name="__codelineno-18-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-18-2" id="__codelineno-18-2" name="__codelineno-18-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">algorithmA</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-18-3" id="__codelineno-18-3" name="__codelineno-18-3"></a><span class="w"> </span><span class="bp">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-18-4" id="__codelineno-18-4" name="__codelineno-18-4"></a><span class="p">}</span>
<a href="#__codelineno-18-5" id="__codelineno-18-5" name="__codelineno-18-5"></a>
<a href="#__codelineno-18-6" id="__codelineno-18-6" name="__codelineno-18-6"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-18-7" id="__codelineno-18-7" name="__codelineno-18-7"></a><span class="kd">func</span><span class="w"> </span><span class="nf">algorithmB</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-18-8" id="__codelineno-18-8" name="__codelineno-18-8"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-18-9" id="__codelineno-18-9" name="__codelineno-18-9"></a><span class="w"> </span><span class="bp">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-18-10" id="__codelineno-18-10" name="__codelineno-18-10"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-18-11" id="__codelineno-18-11" name="__codelineno-18-11"></a><span class="p">}</span>
<a href="#__codelineno-18-12" id="__codelineno-18-12" name="__codelineno-18-12"></a>
<a href="#__codelineno-18-13" id="__codelineno-18-13" name="__codelineno-18-13"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-18-14" id="__codelineno-18-14" name="__codelineno-18-14"></a><span class="kd">func</span><span class="w"> </span><span class="nf">algorithmC</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-18-15" id="__codelineno-18-15" name="__codelineno-18-15"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="mi">1_000_000</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-18-16" id="__codelineno-18-16" name="__codelineno-18-16"></a><span class="w"> </span><span class="bp">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-18-17" id="__codelineno-18-17" name="__codelineno-18-17"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-18-18" id="__codelineno-18-18" name="__codelineno-18-18"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-19-1" id="__codelineno-19-1" name="__codelineno-19-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-19-2" id="__codelineno-19-2" name="__codelineno-19-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm_A</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-19-3" id="__codelineno-19-3" name="__codelineno-19-3"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
<a href="#__codelineno-19-4" id="__codelineno-19-4" name="__codelineno-19-4"></a><span class="p">}</span>
<a href="#__codelineno-19-5" id="__codelineno-19-5" name="__codelineno-19-5"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-19-6" id="__codelineno-19-6" name="__codelineno-19-6"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm_B</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-19-7" id="__codelineno-19-7" name="__codelineno-19-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-19-8" id="__codelineno-19-8" name="__codelineno-19-8"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
<a href="#__codelineno-19-9" id="__codelineno-19-9" name="__codelineno-19-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-19-10" id="__codelineno-19-10" name="__codelineno-19-10"></a><span class="p">}</span>
<a href="#__codelineno-19-11" id="__codelineno-19-11" name="__codelineno-19-11"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-19-12" id="__codelineno-19-12" name="__codelineno-19-12"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm_C</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-19-13" id="__codelineno-19-13" name="__codelineno-19-13"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mf">1000000</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-19-14" id="__codelineno-19-14" name="__codelineno-19-14"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
<a href="#__codelineno-19-15" id="__codelineno-19-15" name="__codelineno-19-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-19-16" id="__codelineno-19-16" name="__codelineno-19-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-20-1" id="__codelineno-20-1" name="__codelineno-20-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-20-2" id="__codelineno-20-2" name="__codelineno-20-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm_A</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="ow">void</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-20-3" id="__codelineno-20-3" name="__codelineno-20-3"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
<a href="#__codelineno-20-4" id="__codelineno-20-4" name="__codelineno-20-4"></a><span class="p">}</span>
<a href="#__codelineno-20-5" id="__codelineno-20-5" name="__codelineno-20-5"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-20-6" id="__codelineno-20-6" name="__codelineno-20-6"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm_B</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="ow">void</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-20-7" id="__codelineno-20-7" name="__codelineno-20-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-20-8" id="__codelineno-20-8" name="__codelineno-20-8"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
<a href="#__codelineno-20-9" id="__codelineno-20-9" name="__codelineno-20-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-20-10" id="__codelineno-20-10" name="__codelineno-20-10"></a><span class="p">}</span>
<a href="#__codelineno-20-11" id="__codelineno-20-11" name="__codelineno-20-11"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-20-12" id="__codelineno-20-12" name="__codelineno-20-12"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm_C</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="ow">void</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-20-13" id="__codelineno-20-13" name="__codelineno-20-13"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mf">1000000</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-20-14" id="__codelineno-20-14" name="__codelineno-20-14"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
<a href="#__codelineno-20-15" id="__codelineno-20-15" name="__codelineno-20-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-20-16" id="__codelineno-20-16" name="__codelineno-20-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-21-1" id="__codelineno-21-1" name="__codelineno-21-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-21-2" id="__codelineno-21-2" name="__codelineno-21-2"></a><span class="kt">void</span><span class="w"> </span><span class="n">algorithmA</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-21-3" id="__codelineno-21-3" name="__codelineno-21-3"></a><span class="w"> </span><span class="n">print</span><span class="p">(</span><span class="m">0</span><span class="p">);</span>
<a href="#__codelineno-21-4" id="__codelineno-21-4" name="__codelineno-21-4"></a><span class="p">}</span>
<a href="#__codelineno-21-5" id="__codelineno-21-5" name="__codelineno-21-5"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-21-6" id="__codelineno-21-6" name="__codelineno-21-6"></a><span class="kt">void</span><span class="w"> </span><span class="n">algorithmB</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-21-7" id="__codelineno-21-7" name="__codelineno-21-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-21-8" id="__codelineno-21-8" name="__codelineno-21-8"></a><span class="w"> </span><span class="n">print</span><span class="p">(</span><span class="m">0</span><span class="p">);</span>
<a href="#__codelineno-21-9" id="__codelineno-21-9" name="__codelineno-21-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-21-10" id="__codelineno-21-10" name="__codelineno-21-10"></a><span class="p">}</span>
<a href="#__codelineno-21-11" id="__codelineno-21-11" name="__codelineno-21-11"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-21-12" id="__codelineno-21-12" name="__codelineno-21-12"></a><span class="kt">void</span><span class="w"> </span><span class="n">algorithmC</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-21-13" id="__codelineno-21-13" name="__codelineno-21-13"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="m">1000000</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-21-14" id="__codelineno-21-14" name="__codelineno-21-14"></a><span class="w"> </span><span class="n">print</span><span class="p">(</span><span class="m">0</span><span class="p">);</span>
<a href="#__codelineno-21-15" id="__codelineno-21-15" name="__codelineno-21-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-21-16" id="__codelineno-21-16" name="__codelineno-21-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-22-1" id="__codelineno-22-1" name="__codelineno-22-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-22-2" id="__codelineno-22-2" name="__codelineno-22-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">algorithm_A</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-22-3" id="__codelineno-22-3" name="__codelineno-22-3"></a><span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-22-4" id="__codelineno-22-4" name="__codelineno-22-4"></a><span class="p">}</span>
<a href="#__codelineno-22-5" id="__codelineno-22-5" name="__codelineno-22-5"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-22-6" id="__codelineno-22-6" name="__codelineno-22-6"></a><span class="k">fn</span><span class="w"> </span><span class="nf">algorithm_B</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-22-7" id="__codelineno-22-7" name="__codelineno-22-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-22-8" id="__codelineno-22-8" name="__codelineno-22-8"></a><span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-22-9" id="__codelineno-22-9" name="__codelineno-22-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-22-10" id="__codelineno-22-10" name="__codelineno-22-10"></a><span class="p">}</span>
<a href="#__codelineno-22-11" id="__codelineno-22-11" name="__codelineno-22-11"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-22-12" id="__codelineno-22-12" name="__codelineno-22-12"></a><span class="k">fn</span><span class="w"> </span><span class="nf">algorithm_C</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-22-13" id="__codelineno-22-13" name="__codelineno-22-13"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="mi">1000000</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-22-14" id="__codelineno-22-14" name="__codelineno-22-14"></a><span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-22-15" id="__codelineno-22-15" name="__codelineno-22-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-22-16" id="__codelineno-22-16" name="__codelineno-22-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-23-1" id="__codelineno-23-1" name="__codelineno-23-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-23-2" id="__codelineno-23-2" name="__codelineno-23-2"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm_A</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-23-3" id="__codelineno-23-3" name="__codelineno-23-3"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-23-4" id="__codelineno-23-4" name="__codelineno-23-4"></a><span class="p">}</span>
<a href="#__codelineno-23-5" id="__codelineno-23-5" name="__codelineno-23-5"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-23-6" id="__codelineno-23-6" name="__codelineno-23-6"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm_B</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-23-7" id="__codelineno-23-7" name="__codelineno-23-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-23-8" id="__codelineno-23-8" name="__codelineno-23-8"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-23-9" id="__codelineno-23-9" name="__codelineno-23-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-23-10" id="__codelineno-23-10" name="__codelineno-23-10"></a><span class="p">}</span>
<a href="#__codelineno-23-11" id="__codelineno-23-11" name="__codelineno-23-11"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-23-12" id="__codelineno-23-12" name="__codelineno-23-12"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm_C</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-23-13" id="__codelineno-23-13" name="__codelineno-23-13"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">1000000</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-23-14" id="__codelineno-23-14" name="__codelineno-23-14"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-23-15" id="__codelineno-23-15" name="__codelineno-23-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-23-16" id="__codelineno-23-16" name="__codelineno-23-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-24-1" id="__codelineno-24-1" name="__codelineno-24-1"></a><span class="c1">// 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-24-2" id="__codelineno-24-2" name="__codelineno-24-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">algoritm_A</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-24-3" id="__codelineno-24-3" name="__codelineno-24-3"></a><span class="w"> </span><span class="n">println</span><span class="p">(</span><span class="m">0</span><span class="p">)</span>
<a href="#__codelineno-24-4" id="__codelineno-24-4" name="__codelineno-24-4"></a><span class="p">}</span>
<a href="#__codelineno-24-5" id="__codelineno-24-5" name="__codelineno-24-5"></a><span class="c1">// 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-24-6" id="__codelineno-24-6" name="__codelineno-24-6"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">algorithm_B</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-24-7" id="__codelineno-24-7" name="__codelineno-24-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">){</span>
<a href="#__codelineno-24-8" id="__codelineno-24-8" name="__codelineno-24-8"></a><span class="w"> </span><span class="n">println</span><span class="p">(</span><span class="m">0</span><span class="p">)</span>
<a href="#__codelineno-24-9" id="__codelineno-24-9" name="__codelineno-24-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-24-10" id="__codelineno-24-10" name="__codelineno-24-10"></a><span class="p">}</span>
<a href="#__codelineno-24-11" id="__codelineno-24-11" name="__codelineno-24-11"></a><span class="c1">// 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-24-12" id="__codelineno-24-12" name="__codelineno-24-12"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">algorithm_C</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-24-13" id="__codelineno-24-13" name="__codelineno-24-13"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="m">1000000</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-24-14" id="__codelineno-24-14" name="__codelineno-24-14"></a><span class="w"> </span><span class="n">println</span><span class="p">(</span><span class="m">0</span><span class="p">)</span>
<a href="#__codelineno-24-15" id="__codelineno-24-15" name="__codelineno-24-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-24-16" id="__codelineno-24-16" name="__codelineno-24-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-25-1" id="__codelineno-25-1" name="__codelineno-25-1"></a><span class="c1"># 알고리즘 A의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-25-2" id="__codelineno-25-2" name="__codelineno-25-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm_A</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-25-3" id="__codelineno-25-3" name="__codelineno-25-3"></a><span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-25-4" id="__codelineno-25-4" name="__codelineno-25-4"></a><span class="k">end</span>
<a href="#__codelineno-25-5" id="__codelineno-25-5" name="__codelineno-25-5"></a>
<a href="#__codelineno-25-6" id="__codelineno-25-6" name="__codelineno-25-6"></a><span class="c1"># 알고리즘 B의 시간 복잡도: 선형 시간</span>
<a href="#__codelineno-25-7" id="__codelineno-25-7" name="__codelineno-25-7"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm_B</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-25-8" id="__codelineno-25-8" name="__codelineno-25-8"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="n">n</span><span class="p">)</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-25-9" id="__codelineno-25-9" name="__codelineno-25-9"></a><span class="k">end</span>
<a href="#__codelineno-25-10" id="__codelineno-25-10" name="__codelineno-25-10"></a>
<a href="#__codelineno-25-11" id="__codelineno-25-11" name="__codelineno-25-11"></a><span class="c1"># 알고리즘 C의 시간 복잡도: 상수 시간</span>
<a href="#__codelineno-25-12" id="__codelineno-25-12" name="__codelineno-25-12"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm_C</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-25-13" id="__codelineno-25-13" name="__codelineno-25-13"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="mi">1_000_000</span><span class="p">)</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-25-14" id="__codelineno-25-14" name="__codelineno-25-14"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<p>아래 그림(2-7)은 이 세 알고리즘 함수의 시간 복잡도를 보여 준다.</p>
<ul>
<li>알고리즘 <code>A</code>에는 출력 연산이 <span class="arithmatex">\(1\)</span>번뿐이므로, <span class="arithmatex">\(n\)</span>이 커져도 실행 시간이 늘어나지 않는다. 이런 알고리즘의 시간 복잡도를 ‘상수 시간’이라고 한다.</li>
<li>알고리즘 <code>B</code>의 출력 연산은 <span class="arithmatex">\(n\)</span>번 반복되므로, <span class="arithmatex">\(n\)</span>이 커짐에 따라 실행 시간이 선형으로 증가한다. 이런 알고리즘의 시간 복잡도를 ‘선형 시간’이라고 한다.</li>
<li>알고리즘 <code>C</code>의 출력 연산은 <span class="arithmatex">\(1000000\)</span>번 반복된다. 실행 시간은 길지만 입력 데이터 크기 <span class="arithmatex">\(n\)</span>과는 무관하다. 따라서 <code>C</code>의 시간 복잡도는 <code>A</code>와 같은 ‘상수 시간’이다.</li>
</ul>
<p><ha-svg-figure class="animation-figure" data-book-key="ko/chapter_computational_complexity/time_complexity.assets/time_complexity_simple_example.png" data-dark-src="/assets/figure-svg/figures/2e88a36b8218abb6c0aaad89.json" data-src="/assets/figure-svg/figures/f2a8d6c883c14fa2158ff152.json" style=";--figure-ratio:960.0/540.0"><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_simple_example.svg" data-theme="light" tabindex="-1" type="image/svg+xml">알고리즘 A, B, C의 시간 증가 추세</object><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_simple_example.dark.svg" data-theme="dark" tabindex="-1" type="image/svg+xml">알고리즘 A, B, C의 시간 증가 추세</object></ha-svg-figure></p>
<p align="center"> 그림 2-7   알고리즘 A, B, C의 시간 증가 추세 </p>
<p>알고리즘의 실행 시간을 직접 계산하는 방식과 비교하면 시간 복잡도 분석에는 어떤 특징이 있을까?</p>
<ul>
<li><strong>시간 복잡도는 알고리즘 효율을 효과적으로 평가할 수 있다</strong>. 예를 들어 알고리즘 <code>B</code>의 실행 시간은 선형으로 증가하므로 <span class="arithmatex">\(n &gt; 1\)</span>이면 알고리즘 <code>A</code>보다 느리고, <span class="arithmatex">\(n &gt; 1000000\)</span>이면 알고리즘 <code>C</code>보다 느리다. 실제로 입력 데이터 크기 <span class="arithmatex">\(n\)</span>이 충분히 크면 ‘상수 시간’ 알고리즘은 반드시 ‘선형 시간’ 알고리즘보다 유리하다. 이것이 바로 시간의 증가 추세가 뜻하는 바다.</li>
<li><strong>시간 복잡도를 구하는 방법은 더 간단하다</strong>. 실행 플랫폼과 연산 종류는 알고리즘 실행 시간의 증가 추세와 무관하다. 따라서 시간 복잡도 분석에서는 모든 연산의 실행 시간을 같은 ‘단위 시간’으로 볼 수 있다. 그러면 ‘연산 실행 시간 계산’을 ‘연산 횟수 계산’으로 단순화할 수 있어 추정이 훨씬 쉬워진다.</li>
<li><strong>시간 복잡도에도 한계는 있다</strong>. 예를 들어 알고리즘 <code>A</code>와 <code>C</code>의 시간 복잡도는 같지만 실제 실행 시간에는 큰 차이가 있다. 마찬가지로 알고리즘 <code>B</code>의 시간 복잡도는 <code>C</code>보다 높지만, 입력 데이터 크기 <span class="arithmatex">\(n\)</span>이 작으면 <code>B</code>가 <code>C</code>보다 확실히 유리하다. 이런 경우에는 시간 복잡도만으로 효율의 우열을 판단하기 어렵다. 물론 이러한 문제에도 불구하고 복잡도 분석은 여전히 알고리즘 효율을 평가하는 가장 효과적이고 널리 쓰이는 방법이다.</li>
</ul>
<h2 id="232">2.3.2   함수의 점근적 상한<a class="headerlink" href="#232" title="고유 링크"></a></h2>
<p>입력 크기가 <span class="arithmatex">\(n\)</span>인 다음 함수를 살펴보자.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="3:13"><input checked="checked" id="__tabbed_3_1" name="__tabbed_3" type="radio"/><input id="__tabbed_3_2" name="__tabbed_3" type="radio"/><input id="__tabbed_3_3" name="__tabbed_3" type="radio"/><input id="__tabbed_3_4" name="__tabbed_3" type="radio"/><input id="__tabbed_3_5" name="__tabbed_3" type="radio"/><input id="__tabbed_3_6" name="__tabbed_3" type="radio"/><input id="__tabbed_3_7" name="__tabbed_3" type="radio"/><input id="__tabbed_3_8" name="__tabbed_3" type="radio"/><input id="__tabbed_3_9" name="__tabbed_3" type="radio"/><input id="__tabbed_3_10" name="__tabbed_3" type="radio"/><input id="__tabbed_3_11" name="__tabbed_3" type="radio"/><input id="__tabbed_3_12" name="__tabbed_3" type="radio"/><input id="__tabbed_3_13" name="__tabbed_3" type="radio"/><div class="tabbed-labels"><label for="__tabbed_3_1">Python</label><label for="__tabbed_3_2">C++</label><label for="__tabbed_3_3">Java</label><label for="__tabbed_3_4">C#</label><label for="__tabbed_3_5">Go</label><label for="__tabbed_3_6">Swift</label><label for="__tabbed_3_7">JS</label><label for="__tabbed_3_8">TS</label><label for="__tabbed_3_9">Dart</label><label for="__tabbed_3_10">Rust</label><label for="__tabbed_3_11">C</label><label for="__tabbed_3_12">Kotlin</label><label for="__tabbed_3_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-26-1" id="__codelineno-26-1" name="__codelineno-26-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
<a href="#__codelineno-26-2" id="__codelineno-26-2" name="__codelineno-26-2"></a> <span class="n">a</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1"># +1</span>
<a href="#__codelineno-26-3" id="__codelineno-26-3" name="__codelineno-26-3"></a> <span class="n">a</span> <span class="o">=</span> <span class="n">a</span> <span class="o">+</span> <span class="mi">1</span> <span class="c1"># +1</span>
<a href="#__codelineno-26-4" id="__codelineno-26-4" name="__codelineno-26-4"></a> <span class="n">a</span> <span class="o">=</span> <span class="n">a</span> <span class="o">*</span> <span class="mi">2</span> <span class="c1"># +1</span>
<a href="#__codelineno-26-5" id="__codelineno-26-5" name="__codelineno-26-5"></a> <span class="c1"># n번 반복</span>
<a href="#__codelineno-26-6" id="__codelineno-26-6" name="__codelineno-26-6"></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span> <span class="c1"># +1</span>
<a href="#__codelineno-26-7" id="__codelineno-26-7" name="__codelineno-26-7"></a> <span class="nb">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="c1"># +1</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-27-1" id="__codelineno-27-1" name="__codelineno-27-1"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-27-2" id="__codelineno-27-2" name="__codelineno-27-2"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-27-3" id="__codelineno-27-3" name="__codelineno-27-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-27-4" id="__codelineno-27-4" name="__codelineno-27-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-27-5" id="__codelineno-27-5" name="__codelineno-27-5"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-27-6" id="__codelineno-27-6" name="__codelineno-27-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// +1(매번 i ++ 실행)</span>
<a href="#__codelineno-27-7" id="__codelineno-27-7" name="__codelineno-27-7"></a><span class="w"> </span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">endl</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-27-8" id="__codelineno-27-8" name="__codelineno-27-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-27-9" id="__codelineno-27-9" name="__codelineno-27-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-28-1" id="__codelineno-28-1" name="__codelineno-28-1"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-28-2" id="__codelineno-28-2" name="__codelineno-28-2"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-28-3" id="__codelineno-28-3" name="__codelineno-28-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-28-4" id="__codelineno-28-4" name="__codelineno-28-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-28-5" id="__codelineno-28-5" name="__codelineno-28-5"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-28-6" id="__codelineno-28-6" name="__codelineno-28-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// +1(매번 i ++ 실행)</span>
<a href="#__codelineno-28-7" id="__codelineno-28-7" name="__codelineno-28-7"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-28-8" id="__codelineno-28-8" name="__codelineno-28-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-28-9" id="__codelineno-28-9" name="__codelineno-28-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-29-1" id="__codelineno-29-1" name="__codelineno-29-1"></a><span class="k">void</span><span class="w"> </span><span class="nf">Algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-29-2" id="__codelineno-29-2" name="__codelineno-29-2"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-29-3" id="__codelineno-29-3" name="__codelineno-29-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-29-4" id="__codelineno-29-4" name="__codelineno-29-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-29-5" id="__codelineno-29-5" name="__codelineno-29-5"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-29-6" id="__codelineno-29-6" name="__codelineno-29-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// +1(매번 i ++ 실행)</span>
<a href="#__codelineno-29-7" id="__codelineno-29-7" name="__codelineno-29-7"></a><span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-29-8" id="__codelineno-29-8" name="__codelineno-29-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-29-9" id="__codelineno-29-9" name="__codelineno-29-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-30-1" id="__codelineno-30-1" name="__codelineno-30-1"></a><span class="kd">func</span><span class="w"> </span><span class="nx">algorithm</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-30-2" id="__codelineno-30-2" name="__codelineno-30-2"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-30-3" id="__codelineno-30-3" name="__codelineno-30-3"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-30-4" id="__codelineno-30-4" name="__codelineno-30-4"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-30-5" id="__codelineno-30-5" name="__codelineno-30-5"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-30-6" id="__codelineno-30-6" name="__codelineno-30-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-30-7" id="__codelineno-30-7" name="__codelineno-30-7"></a><span class="w"> </span><span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-30-8" id="__codelineno-30-8" name="__codelineno-30-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-30-9" id="__codelineno-30-9" name="__codelineno-30-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-31-1" id="__codelineno-31-1" name="__codelineno-31-1"></a><span class="kd">func</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-31-2" id="__codelineno-31-2" name="__codelineno-31-2"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">a</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-31-3" id="__codelineno-31-3" name="__codelineno-31-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-31-4" id="__codelineno-31-4" name="__codelineno-31-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-31-5" id="__codelineno-31-5" name="__codelineno-31-5"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-31-6" id="__codelineno-31-6" name="__codelineno-31-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-31-7" id="__codelineno-31-7" name="__codelineno-31-7"></a><span class="w"> </span><span class="bp">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-31-8" id="__codelineno-31-8" name="__codelineno-31-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-31-9" id="__codelineno-31-9" name="__codelineno-31-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-32-1" id="__codelineno-32-1" name="__codelineno-32-1"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-32-2" id="__codelineno-32-2" name="__codelineno-32-2"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-32-3" id="__codelineno-32-3" name="__codelineno-32-3"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-32-4" id="__codelineno-32-4" name="__codelineno-32-4"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-32-5" id="__codelineno-32-5" name="__codelineno-32-5"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-32-6" id="__codelineno-32-6" name="__codelineno-32-6"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">){</span><span class="w"> </span><span class="c1">// +1(매번 i ++ 실행)</span>
<a href="#__codelineno-32-7" id="__codelineno-32-7" name="__codelineno-32-7"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-32-8" id="__codelineno-32-8" name="__codelineno-32-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-32-9" id="__codelineno-32-9" name="__codelineno-32-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-33-1" id="__codelineno-33-1" name="__codelineno-33-1"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="ow">void</span><span class="p">{</span>
<a href="#__codelineno-33-2" id="__codelineno-33-2" name="__codelineno-33-2"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">a</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-33-3" id="__codelineno-33-3" name="__codelineno-33-3"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-33-4" id="__codelineno-33-4" name="__codelineno-33-4"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-33-5" id="__codelineno-33-5" name="__codelineno-33-5"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-33-6" id="__codelineno-33-6" name="__codelineno-33-6"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">){</span><span class="w"> </span><span class="c1">// +1(매번 i ++ 실행)</span>
<a href="#__codelineno-33-7" id="__codelineno-33-7" name="__codelineno-33-7"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-33-8" id="__codelineno-33-8" name="__codelineno-33-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-33-9" id="__codelineno-33-9" name="__codelineno-33-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-34-1" id="__codelineno-34-1" name="__codelineno-34-1"></a><span class="kt">void</span><span class="w"> </span><span class="n">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-34-2" id="__codelineno-34-2" name="__codelineno-34-2"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-34-3" id="__codelineno-34-3" name="__codelineno-34-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-34-4" id="__codelineno-34-4" name="__codelineno-34-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-34-5" id="__codelineno-34-5" name="__codelineno-34-5"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-34-6" id="__codelineno-34-6" name="__codelineno-34-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// +1(매번 i ++ 실행)</span>
<a href="#__codelineno-34-7" id="__codelineno-34-7" name="__codelineno-34-7"></a><span class="w"> </span><span class="n">print</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-34-8" id="__codelineno-34-8" name="__codelineno-34-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-34-9" id="__codelineno-34-9" name="__codelineno-34-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-35-1" id="__codelineno-35-1" name="__codelineno-35-1"></a><span class="k">fn</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-35-2" id="__codelineno-35-2" name="__codelineno-35-2"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-35-3" id="__codelineno-35-3" name="__codelineno-35-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-35-4" id="__codelineno-35-4" name="__codelineno-35-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-35-5" id="__codelineno-35-5" name="__codelineno-35-5"></a>
<a href="#__codelineno-35-6" id="__codelineno-35-6" name="__codelineno-35-6"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-35-7" id="__codelineno-35-7" name="__codelineno-35-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// +1(매번 i ++ 실행)</span>
<a href="#__codelineno-35-8" id="__codelineno-35-8" name="__codelineno-35-8"></a><span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-35-9" id="__codelineno-35-9" name="__codelineno-35-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-35-10" id="__codelineno-35-10" name="__codelineno-35-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-36-1" id="__codelineno-36-1" name="__codelineno-36-1"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-36-2" id="__codelineno-36-2" name="__codelineno-36-2"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-36-3" id="__codelineno-36-3" name="__codelineno-36-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-36-4" id="__codelineno-36-4" name="__codelineno-36-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-36-5" id="__codelineno-36-5" name="__codelineno-36-5"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-36-6" id="__codelineno-36-6" name="__codelineno-36-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// +1(매번 i ++ 실행)</span>
<a href="#__codelineno-36-7" id="__codelineno-36-7" name="__codelineno-36-7"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-36-8" id="__codelineno-36-8" name="__codelineno-36-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-36-9" id="__codelineno-36-9" name="__codelineno-36-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-37-1" id="__codelineno-37-1" name="__codelineno-37-1"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-37-2" id="__codelineno-37-2" name="__codelineno-37-2"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-37-3" id="__codelineno-37-3" name="__codelineno-37-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-37-4" id="__codelineno-37-4" name="__codelineno-37-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-37-5" id="__codelineno-37-5" name="__codelineno-37-5"></a><span class="w"> </span><span class="c1">// n번 반복</span>
<a href="#__codelineno-37-6" id="__codelineno-37-6" name="__codelineno-37-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// +1(매번 i ++ 실행)</span>
<a href="#__codelineno-37-7" id="__codelineno-37-7" name="__codelineno-37-7"></a><span class="w"> </span><span class="n">println</span><span class="p">(</span><span class="m">0</span><span class="p">)</span><span class="w"> </span><span class="c1">// +1</span>
<a href="#__codelineno-37-8" id="__codelineno-37-8" name="__codelineno-37-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-37-9" id="__codelineno-37-9" name="__codelineno-37-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-38-1" id="__codelineno-38-1" name="__codelineno-38-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-38-2" id="__codelineno-38-2" name="__codelineno-38-2"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1"># +1</span>
<a href="#__codelineno-38-3" id="__codelineno-38-3" name="__codelineno-38-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1"># +1</span>
<a href="#__codelineno-38-4" id="__codelineno-38-4" name="__codelineno-38-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="c1"># +1</span>
<a href="#__codelineno-38-5" id="__codelineno-38-5" name="__codelineno-38-5"></a><span class="w"> </span><span class="c1"># n번 반복</span>
<a href="#__codelineno-38-6" id="__codelineno-38-6" name="__codelineno-38-6"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="n">n</span><span class="p">)</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="c1"># +1</span>
<a href="#__codelineno-38-7" id="__codelineno-38-7" name="__codelineno-38-7"></a><span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="c1"># +1</span>
<a href="#__codelineno-38-8" id="__codelineno-38-8" name="__codelineno-38-8"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-38-9" id="__codelineno-38-9" name="__codelineno-38-9"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<p>알고리즘의 연산 횟수를 입력 데이터 크기 <span class="arithmatex">\(n\)</span>에 대한 함수 <span class="arithmatex">\(T(n)\)</span>으로 나타내면, 위 함수의 연산 횟수는 다음과 같다.</p>
<div class="arithmatex">\[
T(n) = 3 + 2n
\]</div>
<p><span class="arithmatex">\(T(n)\)</span>은 일차 함수이므로 실행 시간이 선형으로 증가한다. 따라서 시간 복잡도는 선형 시간이다.</p>
<p>선형 시간 복잡도를 <span class="arithmatex">\(O(n)\)</span>으로 표기한다. 이 수학 기호를 <u>빅 <span class="arithmatex">\(O\)</span> 표기법(big-<span class="arithmatex">\(O\)</span> notation)</u>이라고 하며, 함수 <span class="arithmatex">\(T(n)\)</span>의 <u>점근적 상한(asymptotic upper bound)</u>을 나타낸다.</p>
<p>시간 복잡도 분석은 본질적으로 ‘연산 횟수 <span class="arithmatex">\(T(n)\)</span>’의 점근적 상한을 계산하는 것으로, 명확한 수학적 정의가 있다.</p>
<div class="admonition note">
<p class="admonition-title">함수의 점근적 상한</p>
<p>양의 실수 <span class="arithmatex">\(c\)</span>와 실수 <span class="arithmatex">\(n_0\)</span>가 존재하여 모든 <span class="arithmatex">\(n &gt; n_0\)</span>에 대해 <span class="arithmatex">\(T(n) \leq c \cdot f(n)\)</span>이면, <span class="arithmatex">\(f(n)\)</span>은 <span class="arithmatex">\(T(n)\)</span>의 점근적 상한을 제공한다고 하며 <span class="arithmatex">\(T(n) = O(f(n))\)</span>으로 표기한다.</p>
</div>
<p>아래 그림(2-8)과 같이 점근적 상한을 계산한다는 것은 함수 <span class="arithmatex">\(f(n)\)</span>을 찾는 것이다. 이 함수는 <span class="arithmatex">\(n\)</span>이 무한대로 향할 때 <span class="arithmatex">\(T(n)\)</span>과 <span class="arithmatex">\(f(n)\)</span>의 증가 차수가 같고 상수 계수 <span class="arithmatex">\(c\)</span>만큼만 차이가 나도록 해야 한다.</p>
<p><ha-svg-figure class="animation-figure" data-book-key="ko/chapter_computational_complexity/time_complexity.assets/asymptotic_upper_bound.png" data-dark-src="/assets/figure-svg/figures/9222373b9c523f738059db8d.json" data-src="/assets/figure-svg/figures/33898f21242f207753211092.json" style=";--figure-ratio:960.0/540.0"><object data="/ko/chapter_computational_complexity/time_complexity.assets/asymptotic_upper_bound.svg" data-theme="light" tabindex="-1" type="image/svg+xml">함수의 점근적 상한</object><object data="/ko/chapter_computational_complexity/time_complexity.assets/asymptotic_upper_bound.dark.svg" data-theme="dark" tabindex="-1" type="image/svg+xml">함수의 점근적 상한</object></ha-svg-figure></p>
<p align="center"> 그림 2-8   함수의 점근적 상한 </p>
<h2 id="233">2.3.3   계산 방법<a class="headerlink" href="#233" title="고유 링크"></a></h2>
<p>점근적 상한은 수학적인 느낌이 강하므로, 완전히 이해되지 않아도 걱정할 필요 없다. 우선 계산 방법을 익힌 뒤 반복해서 연습하면 그 수학적 의미도 점차 이해할 수 있다.</p>
<p>정의에 따르면 <span class="arithmatex">\(f(n)\)</span>을 정하면 시간 복잡도 <span class="arithmatex">\(O(f(n))\)</span>을 얻는다. 그렇다면 점근적 상한 <span class="arithmatex">\(f(n)\)</span>은 어떻게 정할까? 크게 두 단계로 나뉜다. 먼저 연산 횟수를 세고, 그다음 점근적 상한을 판단한다.</p>
<h3 id="1-1">1.   1단계: 연산 횟수 세기<a class="headerlink" href="#1-1" title="고유 링크"></a></h3>
<p>코드를 위에서 아래로 한 줄씩 살펴보며 계산하면 된다. 다만 앞서 본 <span class="arithmatex">\(c \cdot f(n)\)</span>의 상수 계수 <span class="arithmatex">\(c\)</span>는 어떤 크기든 가능하므로, <strong>연산 횟수 <span class="arithmatex">\(T(n)\)</span>의 각종 계수와 상수항은 무시해도 된다</strong>. 이 원리를 바탕으로 계산을 단순화하는 다음 요령을 얻을 수 있다.</p>
<ol>
<li><strong><span class="arithmatex">\(T(n)\)</span>의 상수를 무시한다</strong>. 상수는 <span class="arithmatex">\(n\)</span>과 무관하므로 시간 복잡도에 영향을 주지 않는다.</li>
<li><strong>모든 계수를 생략한다</strong>. 예를 들어 <span class="arithmatex">\(2n\)</span>번, <span class="arithmatex">\(5n + 1\)</span>번 등의 반복은 모두 <span class="arithmatex">\(n\)</span>번으로 단순화할 수 있다. <span class="arithmatex">\(n\)</span> 앞의 계수는 시간 복잡도에 영향을 주지 않기 때문이다.</li>
<li><strong>중첩 반복문에는 곱셈을 사용한다</strong>. 전체 연산 횟수는 바깥쪽 반복문과 안쪽 반복문의 연산 횟수의 곱이며, 각 반복문에는 여전히 <code>1.</code>과 <code>2.</code>의 요령을 따로 적용할 수 있다.</li>
</ol>
<p>다음 함수에 위 요령을 적용하여 연산 횟수를 세어 보자.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="4:13"><input checked="checked" id="__tabbed_4_1" name="__tabbed_4" type="radio"/><input id="__tabbed_4_2" name="__tabbed_4" type="radio"/><input id="__tabbed_4_3" name="__tabbed_4" type="radio"/><input id="__tabbed_4_4" name="__tabbed_4" type="radio"/><input id="__tabbed_4_5" name="__tabbed_4" type="radio"/><input id="__tabbed_4_6" name="__tabbed_4" type="radio"/><input id="__tabbed_4_7" name="__tabbed_4" type="radio"/><input id="__tabbed_4_8" name="__tabbed_4" type="radio"/><input id="__tabbed_4_9" name="__tabbed_4" type="radio"/><input id="__tabbed_4_10" name="__tabbed_4" type="radio"/><input id="__tabbed_4_11" name="__tabbed_4" type="radio"/><input id="__tabbed_4_12" name="__tabbed_4" type="radio"/><input id="__tabbed_4_13" name="__tabbed_4" type="radio"/><div class="tabbed-labels"><label for="__tabbed_4_1">Python</label><label for="__tabbed_4_2">C++</label><label for="__tabbed_4_3">Java</label><label for="__tabbed_4_4">C#</label><label for="__tabbed_4_5">Go</label><label for="__tabbed_4_6">Swift</label><label for="__tabbed_4_7">JS</label><label for="__tabbed_4_8">TS</label><label for="__tabbed_4_9">Dart</label><label for="__tabbed_4_10">Rust</label><label for="__tabbed_4_11">C</label><label for="__tabbed_4_12">Kotlin</label><label for="__tabbed_4_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-39-1" id="__codelineno-39-1" name="__codelineno-39-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">):</span>
<a href="#__codelineno-39-2" id="__codelineno-39-2" name="__codelineno-39-2"></a> <span class="n">a</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1"># +0(요령 1)</span>
<a href="#__codelineno-39-3" id="__codelineno-39-3" name="__codelineno-39-3"></a> <span class="n">a</span> <span class="o">=</span> <span class="n">a</span> <span class="o">+</span> <span class="n">n</span> <span class="c1"># +0(요령 1)</span>
<a href="#__codelineno-39-4" id="__codelineno-39-4" name="__codelineno-39-4"></a> <span class="c1"># +n(요령 2)</span>
<a href="#__codelineno-39-5" id="__codelineno-39-5" name="__codelineno-39-5"></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span> <span class="o">*</span> <span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
<a href="#__codelineno-39-6" id="__codelineno-39-6" name="__codelineno-39-6"></a> <span class="nb">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-39-7" id="__codelineno-39-7" name="__codelineno-39-7"></a> <span class="c1"># +n*n(요령 3)</span>
<a href="#__codelineno-39-8" id="__codelineno-39-8" name="__codelineno-39-8"></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">n</span><span class="p">):</span>
<a href="#__codelineno-39-9" id="__codelineno-39-9" name="__codelineno-39-9"></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
<a href="#__codelineno-39-10" id="__codelineno-39-10" name="__codelineno-39-10"></a> <span class="nb">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-40-1" id="__codelineno-40-1" name="__codelineno-40-1"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-40-2" id="__codelineno-40-2" name="__codelineno-40-2"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-40-3" id="__codelineno-40-3" name="__codelineno-40-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-40-4" id="__codelineno-40-4" name="__codelineno-40-4"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-40-5" id="__codelineno-40-5" name="__codelineno-40-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-40-6" id="__codelineno-40-6" name="__codelineno-40-6"></a><span class="w"> </span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">endl</span><span class="p">;</span>
<a href="#__codelineno-40-7" id="__codelineno-40-7" name="__codelineno-40-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-40-8" id="__codelineno-40-8" name="__codelineno-40-8"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-40-9" id="__codelineno-40-9" name="__codelineno-40-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-40-10" id="__codelineno-40-10" name="__codelineno-40-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-40-11" id="__codelineno-40-11" name="__codelineno-40-11"></a><span class="w"> </span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">endl</span><span class="p">;</span>
<a href="#__codelineno-40-12" id="__codelineno-40-12" name="__codelineno-40-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-40-13" id="__codelineno-40-13" name="__codelineno-40-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-40-14" id="__codelineno-40-14" name="__codelineno-40-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-41-1" id="__codelineno-41-1" name="__codelineno-41-1"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-41-2" id="__codelineno-41-2" name="__codelineno-41-2"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-41-3" id="__codelineno-41-3" name="__codelineno-41-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-41-4" id="__codelineno-41-4" name="__codelineno-41-4"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-41-5" id="__codelineno-41-5" name="__codelineno-41-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-41-6" id="__codelineno-41-6" name="__codelineno-41-6"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-41-7" id="__codelineno-41-7" name="__codelineno-41-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-41-8" id="__codelineno-41-8" name="__codelineno-41-8"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-41-9" id="__codelineno-41-9" name="__codelineno-41-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-41-10" id="__codelineno-41-10" name="__codelineno-41-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-41-11" id="__codelineno-41-11" name="__codelineno-41-11"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-41-12" id="__codelineno-41-12" name="__codelineno-41-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-41-13" id="__codelineno-41-13" name="__codelineno-41-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-41-14" id="__codelineno-41-14" name="__codelineno-41-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-42-1" id="__codelineno-42-1" name="__codelineno-42-1"></a><span class="k">void</span><span class="w"> </span><span class="nf">Algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-42-2" id="__codelineno-42-2" name="__codelineno-42-2"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-42-3" id="__codelineno-42-3" name="__codelineno-42-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-42-4" id="__codelineno-42-4" name="__codelineno-42-4"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-42-5" id="__codelineno-42-5" name="__codelineno-42-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-42-6" id="__codelineno-42-6" name="__codelineno-42-6"></a><span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-42-7" id="__codelineno-42-7" name="__codelineno-42-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-42-8" id="__codelineno-42-8" name="__codelineno-42-8"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-42-9" id="__codelineno-42-9" name="__codelineno-42-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-42-10" id="__codelineno-42-10" name="__codelineno-42-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-42-11" id="__codelineno-42-11" name="__codelineno-42-11"></a><span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-42-12" id="__codelineno-42-12" name="__codelineno-42-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-42-13" id="__codelineno-42-13" name="__codelineno-42-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-42-14" id="__codelineno-42-14" name="__codelineno-42-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-43-1" id="__codelineno-43-1" name="__codelineno-43-1"></a><span class="kd">func</span><span class="w"> </span><span class="nx">algorithm</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-43-2" id="__codelineno-43-2" name="__codelineno-43-2"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-43-3" id="__codelineno-43-3" name="__codelineno-43-3"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-43-4" id="__codelineno-43-4" name="__codelineno-43-4"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-43-5" id="__codelineno-43-5" name="__codelineno-43-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-43-6" id="__codelineno-43-6" name="__codelineno-43-6"></a><span class="w"> </span><span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-43-7" id="__codelineno-43-7" name="__codelineno-43-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-43-8" id="__codelineno-43-8" name="__codelineno-43-8"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-43-9" id="__codelineno-43-9" name="__codelineno-43-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-43-10" id="__codelineno-43-10" name="__codelineno-43-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-43-11" id="__codelineno-43-11" name="__codelineno-43-11"></a><span class="w"> </span><span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-43-12" id="__codelineno-43-12" name="__codelineno-43-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-43-13" id="__codelineno-43-13" name="__codelineno-43-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-43-14" id="__codelineno-43-14" name="__codelineno-43-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-44-1" id="__codelineno-44-1" name="__codelineno-44-1"></a><span class="kd">func</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-44-2" id="__codelineno-44-2" name="__codelineno-44-2"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">a</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-44-3" id="__codelineno-44-3" name="__codelineno-44-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-44-4" id="__codelineno-44-4" name="__codelineno-44-4"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-44-5" id="__codelineno-44-5" name="__codelineno-44-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-44-6" id="__codelineno-44-6" name="__codelineno-44-6"></a><span class="w"> </span><span class="bp">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-44-7" id="__codelineno-44-7" name="__codelineno-44-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-44-8" id="__codelineno-44-8" name="__codelineno-44-8"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-44-9" id="__codelineno-44-9" name="__codelineno-44-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-44-10" id="__codelineno-44-10" name="__codelineno-44-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-44-11" id="__codelineno-44-11" name="__codelineno-44-11"></a><span class="w"> </span><span class="bp">print</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-44-12" id="__codelineno-44-12" name="__codelineno-44-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-44-13" id="__codelineno-44-13" name="__codelineno-44-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-44-14" id="__codelineno-44-14" name="__codelineno-44-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-45-1" id="__codelineno-45-1" name="__codelineno-45-1"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-45-2" id="__codelineno-45-2" name="__codelineno-45-2"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-45-3" id="__codelineno-45-3" name="__codelineno-45-3"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-45-4" id="__codelineno-45-4" name="__codelineno-45-4"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-45-5" id="__codelineno-45-5" name="__codelineno-45-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mf">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-45-6" id="__codelineno-45-6" name="__codelineno-45-6"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
<a href="#__codelineno-45-7" id="__codelineno-45-7" name="__codelineno-45-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-45-8" id="__codelineno-45-8" name="__codelineno-45-8"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-45-9" id="__codelineno-45-9" name="__codelineno-45-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mf">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-45-10" id="__codelineno-45-10" name="__codelineno-45-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-45-11" id="__codelineno-45-11" name="__codelineno-45-11"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
<a href="#__codelineno-45-12" id="__codelineno-45-12" name="__codelineno-45-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-45-13" id="__codelineno-45-13" name="__codelineno-45-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-45-14" id="__codelineno-45-14" name="__codelineno-45-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-46-1" id="__codelineno-46-1" name="__codelineno-46-1"></a><span class="kd">function</span><span class="w"> </span><span class="nx">algorithm</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="ow">void</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-46-2" id="__codelineno-46-2" name="__codelineno-46-2"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-46-3" id="__codelineno-46-3" name="__codelineno-46-3"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-46-4" id="__codelineno-46-4" name="__codelineno-46-4"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-46-5" id="__codelineno-46-5" name="__codelineno-46-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mf">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-46-6" id="__codelineno-46-6" name="__codelineno-46-6"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
<a href="#__codelineno-46-7" id="__codelineno-46-7" name="__codelineno-46-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-46-8" id="__codelineno-46-8" name="__codelineno-46-8"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-46-9" id="__codelineno-46-9" name="__codelineno-46-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mf">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-46-10" id="__codelineno-46-10" name="__codelineno-46-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-46-11" id="__codelineno-46-11" name="__codelineno-46-11"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
<a href="#__codelineno-46-12" id="__codelineno-46-12" name="__codelineno-46-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-46-13" id="__codelineno-46-13" name="__codelineno-46-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-46-14" id="__codelineno-46-14" name="__codelineno-46-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-47-1" id="__codelineno-47-1" name="__codelineno-47-1"></a><span class="kt">void</span><span class="w"> </span><span class="n">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-47-2" id="__codelineno-47-2" name="__codelineno-47-2"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-47-3" id="__codelineno-47-3" name="__codelineno-47-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-47-4" id="__codelineno-47-4" name="__codelineno-47-4"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-47-5" id="__codelineno-47-5" name="__codelineno-47-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="m">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-47-6" id="__codelineno-47-6" name="__codelineno-47-6"></a><span class="w"> </span><span class="n">print</span><span class="p">(</span><span class="m">0</span><span class="p">);</span>
<a href="#__codelineno-47-7" id="__codelineno-47-7" name="__codelineno-47-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-47-8" id="__codelineno-47-8" name="__codelineno-47-8"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-47-9" id="__codelineno-47-9" name="__codelineno-47-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-47-10" id="__codelineno-47-10" name="__codelineno-47-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-47-11" id="__codelineno-47-11" name="__codelineno-47-11"></a><span class="w"> </span><span class="n">print</span><span class="p">(</span><span class="m">0</span><span class="p">);</span>
<a href="#__codelineno-47-12" id="__codelineno-47-12" name="__codelineno-47-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-47-13" id="__codelineno-47-13" name="__codelineno-47-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-47-14" id="__codelineno-47-14" name="__codelineno-47-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-48-1" id="__codelineno-48-1" name="__codelineno-48-1"></a><span class="k">fn</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-48-2" id="__codelineno-48-2" name="__codelineno-48-2"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-48-3" id="__codelineno-48-3" name="__codelineno-48-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-48-4" id="__codelineno-48-4" name="__codelineno-48-4"></a>
<a href="#__codelineno-48-5" id="__codelineno-48-5" name="__codelineno-48-5"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-48-6" id="__codelineno-48-6" name="__codelineno-48-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="p">(</span><span class="mi">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-48-7" id="__codelineno-48-7" name="__codelineno-48-7"></a><span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-48-8" id="__codelineno-48-8" name="__codelineno-48-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-48-9" id="__codelineno-48-9" name="__codelineno-48-9"></a>
<a href="#__codelineno-48-10" id="__codelineno-48-10" name="__codelineno-48-10"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-48-11" id="__codelineno-48-11" name="__codelineno-48-11"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="p">(</span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-48-12" id="__codelineno-48-12" name="__codelineno-48-12"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-48-13" id="__codelineno-48-13" name="__codelineno-48-13"></a><span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-48-14" id="__codelineno-48-14" name="__codelineno-48-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-48-15" id="__codelineno-48-15" name="__codelineno-48-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-48-16" id="__codelineno-48-16" name="__codelineno-48-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-49-1" id="__codelineno-49-1" name="__codelineno-49-1"></a><span class="kt">void</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-49-2" id="__codelineno-49-2" name="__codelineno-49-2"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-49-3" id="__codelineno-49-3" name="__codelineno-49-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-49-4" id="__codelineno-49-4" name="__codelineno-49-4"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-49-5" id="__codelineno-49-5" name="__codelineno-49-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-49-6" id="__codelineno-49-6" name="__codelineno-49-6"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-49-7" id="__codelineno-49-7" name="__codelineno-49-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-49-8" id="__codelineno-49-8" name="__codelineno-49-8"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-49-9" id="__codelineno-49-9" name="__codelineno-49-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-49-10" id="__codelineno-49-10" name="__codelineno-49-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-49-11" id="__codelineno-49-11" name="__codelineno-49-11"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<a href="#__codelineno-49-12" id="__codelineno-49-12" name="__codelineno-49-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-49-13" id="__codelineno-49-13" name="__codelineno-49-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-49-14" id="__codelineno-49-14" name="__codelineno-49-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-50-1" id="__codelineno-50-1" name="__codelineno-50-1"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-50-2" id="__codelineno-50-2" name="__codelineno-50-2"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-50-3" id="__codelineno-50-3" name="__codelineno-50-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="c1">// +0(요령 1)</span>
<a href="#__codelineno-50-4" id="__codelineno-50-4" name="__codelineno-50-4"></a><span class="w"> </span><span class="c1">// +n(요령 2)</span>
<a href="#__codelineno-50-5" id="__codelineno-50-5" name="__codelineno-50-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="m">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-50-6" id="__codelineno-50-6" name="__codelineno-50-6"></a><span class="w"> </span><span class="n">println</span><span class="p">(</span><span class="m">0</span><span class="p">)</span>
<a href="#__codelineno-50-7" id="__codelineno-50-7" name="__codelineno-50-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-50-8" id="__codelineno-50-8" name="__codelineno-50-8"></a><span class="w"> </span><span class="c1">// +n*n(요령 3)</span>
<a href="#__codelineno-50-9" id="__codelineno-50-9" name="__codelineno-50-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="m">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-50-10" id="__codelineno-50-10" name="__codelineno-50-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-50-11" id="__codelineno-50-11" name="__codelineno-50-11"></a><span class="w"> </span><span class="n">println</span><span class="p">(</span><span class="m">0</span><span class="p">)</span>
<a href="#__codelineno-50-12" id="__codelineno-50-12" name="__codelineno-50-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-50-13" id="__codelineno-50-13" name="__codelineno-50-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-50-14" id="__codelineno-50-14" name="__codelineno-50-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><a href="#__codelineno-51-1" id="__codelineno-51-1" name="__codelineno-51-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">algorithm</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-51-2" id="__codelineno-51-2" name="__codelineno-51-2"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c1"># +0(요령 1)</span>
<a href="#__codelineno-51-3" id="__codelineno-51-3" name="__codelineno-51-3"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="c1"># +0(요령 1)</span>
<a href="#__codelineno-51-4" id="__codelineno-51-4" name="__codelineno-51-4"></a><span class="w"> </span><span class="c1"># +n(요령 2)</span>
<a href="#__codelineno-51-5" id="__codelineno-51-5" name="__codelineno-51-5"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="p">(</span><span class="mi">5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-51-6" id="__codelineno-51-6" name="__codelineno-51-6"></a><span class="w"> </span><span class="c1"># +n*n(요령 3)</span>
<a href="#__codelineno-51-7" id="__codelineno-51-7" name="__codelineno-51-7"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="p">(</span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">n</span><span class="p">))</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="k">do</span>
<a href="#__codelineno-51-8" id="__codelineno-51-8" name="__codelineno-51-8"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-51-9" id="__codelineno-51-9" name="__codelineno-51-9"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-51-10" id="__codelineno-51-10" name="__codelineno-51-10"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<p>아래 식은 위 요령을 적용하기 전과 후의 계산 결과를 보여 준다. 두 결과에서 구한 시간 복잡도는 모두 <span class="arithmatex">\(O(n^2)\)</span>이다.</p>
<div class="arithmatex">\[
\begin{aligned}
T(n) &amp; = 2n(n + 1) + (5n + 1) + 2 &amp; \text{빠짐없이 계산 (-.-|||)} \newline
&amp; = 2n^2 + 7n + 3 \newline
T(n) &amp; = n^2 + n &amp; \text{간단히 계산 (o.O)}
\end{aligned}
\]</div>
<h3 id="2-2">2.   2단계: 점근적 상한 판단<a class="headerlink" href="#2-2" title="고유 링크"></a></h3>
<p><strong>시간 복잡도는 <span class="arithmatex">\(T(n)\)</span>에서 가장 높은 차수의 항으로 결정된다</strong>. <span class="arithmatex">\(n\)</span>이 무한대로 향하면 가장 높은 차수의 항이 지배적인 영향을 주므로 나머지 항의 영향은 무시할 수 있기 때문이다.</p>
<p>아래 표(2-2)는 몇 가지 예를 보여 준다. 일부 값이 과장되어 있는 이유는 ‘계수로는 차수를 뒤집을 수 없다’는 결론을 강조하기 위해서다. <span class="arithmatex">\(n\)</span>이 무한대로 향하면 이러한 상수는 중요하지 않게 된다.</p>
<p align="center"> 표 2-2   연산 횟수에 따른 시간 복잡도 </p>
<div class="center-table">
<table>
<thead>
<tr>
<th>연산 횟수 <span class="arithmatex">\(T(n)\)</span></th>
<th>시간 복잡도 <span class="arithmatex">\(O(f(n))\)</span></th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="arithmatex">\(100000\)</span></td>
<td><span class="arithmatex">\(O(1)\)</span></td>
</tr>
<tr>
<td><span class="arithmatex">\(3n + 2\)</span></td>
<td><span class="arithmatex">\(O(n)\)</span></td>
</tr>
<tr>
<td><span class="arithmatex">\(2n^2 + 3n + 2\)</span></td>
<td><span class="arithmatex">\(O(n^2)\)</span></td>
</tr>
<tr>
<td><span class="arithmatex">\(n^3 + 10000n^2\)</span></td>
<td><span class="arithmatex">\(O(n^3)\)</span></td>
</tr>
<tr>
<td><span class="arithmatex">\(2^n + 10000n^{10000}\)</span></td>
<td><span class="arithmatex">\(O(2^n)\)</span></td>
</tr>
</tbody>
</table>
</div>
<h2 id="234">2.3.4   대표적인 유형<a class="headerlink" href="#234" title="고유 링크"></a></h2>
<p>입력 데이터 크기를 <span class="arithmatex">\(n\)</span>이라고 할 때, 대표적인 시간 복잡도 유형은 아래 그림(2-9)과 같다(낮은 순서대로 나열).</p>
<div class="arithmatex">\[
\begin{aligned}
&amp; O(1) &lt; O(\log n) &lt; O(n) &lt; O(n \log n) &lt; O(n^2) &lt; O(2^n) &lt; O(n!) \newline
&amp; \text{상수} &lt; \text{로그} &lt; \text{선형} &lt; \text{선형 로그} &lt; \text{제곱} &lt; \text{지수} &lt; \text{팩토리얼}
\end{aligned}
\]</div>
<p><ha-svg-figure class="animation-figure" data-book-key="ko/chapter_computational_complexity/time_complexity.assets/time_complexity_common_types.png" data-dark-src="/assets/figure-svg/figures/c95b5898371b526d090a1e91.json" data-src="/assets/figure-svg/figures/00fc997a81881932ab90c666.json" style=";--figure-ratio:960.0/540.0"><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_common_types.svg" data-theme="light" tabindex="-1" type="image/svg+xml">대표적인 시간 복잡도 유형</object><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_common_types.dark.svg" data-theme="dark" tabindex="-1" type="image/svg+xml">대표적인 시간 복잡도 유형</object></ha-svg-figure></p>
<p align="center"> 그림 2-9   대표적인 시간 복잡도 유형 </p>
<h3 id="1-o1">1.   상수 시간 <span class="arithmatex">\(O(1)\)</span><a class="headerlink" href="#1-o1" title="고유 링크"></a></h3>
<p>상수 시간의 연산 횟수는 입력 데이터 크기 <span class="arithmatex">\(n\)</span>과 무관하며, <span class="arithmatex">\(n\)</span>이 변해도 달라지지 않는다.</p>
<p>다음 함수에서 연산 횟수 <code>size</code>는 매우 클 수 있지만 입력 데이터 크기 <span class="arithmatex">\(n\)</span>과 무관하므로, 시간 복잡도는 여전히 <span class="arithmatex">\(O(1)\)</span>이다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="5:13"><input checked="checked" id="__tabbed_5_1" name="__tabbed_5" type="radio"/><input id="__tabbed_5_2" name="__tabbed_5" type="radio"/><input id="__tabbed_5_3" name="__tabbed_5" type="radio"/><input id="__tabbed_5_4" name="__tabbed_5" type="radio"/><input id="__tabbed_5_5" name="__tabbed_5" type="radio"/><input id="__tabbed_5_6" name="__tabbed_5" type="radio"/><input id="__tabbed_5_7" name="__tabbed_5" type="radio"/><input id="__tabbed_5_8" name="__tabbed_5" type="radio"/><input id="__tabbed_5_9" name="__tabbed_5" type="radio"/><input id="__tabbed_5_10" name="__tabbed_5" type="radio"/><input id="__tabbed_5_11" name="__tabbed_5" type="radio"/><input id="__tabbed_5_12" name="__tabbed_5" type="radio"/><input id="__tabbed_5_13" name="__tabbed_5" type="radio"/><div class="tabbed-labels"><label for="__tabbed_5_1">Python</label><label for="__tabbed_5_2">C++</label><label for="__tabbed_5_3">Java</label><label for="__tabbed_5_4">C#</label><label for="__tabbed_5_5">Go</label><label for="__tabbed_5_6">Swift</label><label for="__tabbed_5_7">JS</label><label for="__tabbed_5_8">TS</label><label for="__tabbed_5_9">Dart</label><label for="__tabbed_5_10">Rust</label><label for="__tabbed_5_11">C</label><label for="__tabbed_5_12">Kotlin</label><label for="__tabbed_5_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-52-1" id="__codelineno-52-1" name="__codelineno-52-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">constant</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-52-2" id="__codelineno-52-2" name="__codelineno-52-2"></a><span class="w"> </span><span class="sd">"""상수 차수"""</span>
<a href="#__codelineno-52-3" id="__codelineno-52-3" name="__codelineno-52-3"></a> <span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
<a href="#__codelineno-52-4" id="__codelineno-52-4" name="__codelineno-52-4"></a> <span class="n">size</span> <span class="o">=</span> <span class="mi">100000</span>
<a href="#__codelineno-52-5" id="__codelineno-52-5" name="__codelineno-52-5"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">size</span><span class="p">):</span>
<a href="#__codelineno-52-6" id="__codelineno-52-6" name="__codelineno-52-6"></a> <span class="n">count</span> <span class="o">+=</span> <span class="mi">1</span>
<a href="#__codelineno-52-7" id="__codelineno-52-7" name="__codelineno-52-7"></a> <span class="k">return</span> <span class="n">count</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-53-1" id="__codelineno-53-1" name="__codelineno-53-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-53-2" id="__codelineno-53-2" name="__codelineno-53-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">constant</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-53-3" id="__codelineno-53-3" name="__codelineno-53-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-53-4" id="__codelineno-53-4" name="__codelineno-53-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100000</span><span class="p">;</span>
<a href="#__codelineno-53-5" id="__codelineno-53-5" name="__codelineno-53-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span>
<a href="#__codelineno-53-6" id="__codelineno-53-6" name="__codelineno-53-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-53-7" id="__codelineno-53-7" name="__codelineno-53-7"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-53-8" id="__codelineno-53-8" name="__codelineno-53-8"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-54-1" id="__codelineno-54-1" name="__codelineno-54-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-54-2" id="__codelineno-54-2" name="__codelineno-54-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">constant</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-54-3" id="__codelineno-54-3" name="__codelineno-54-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-54-4" id="__codelineno-54-4" name="__codelineno-54-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100000</span><span class="p">;</span>
<a href="#__codelineno-54-5" id="__codelineno-54-5" name="__codelineno-54-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span>
<a href="#__codelineno-54-6" id="__codelineno-54-6" name="__codelineno-54-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-54-7" id="__codelineno-54-7" name="__codelineno-54-7"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-54-8" id="__codelineno-54-8" name="__codelineno-54-8"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-55-1" id="__codelineno-55-1" name="__codelineno-55-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-55-2" id="__codelineno-55-2" name="__codelineno-55-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">Constant</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-55-3" id="__codelineno-55-3" name="__codelineno-55-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-55-4" id="__codelineno-55-4" name="__codelineno-55-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100000</span><span class="p">;</span>
<a href="#__codelineno-55-5" id="__codelineno-55-5" name="__codelineno-55-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span>
<a href="#__codelineno-55-6" id="__codelineno-55-6" name="__codelineno-55-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-55-7" id="__codelineno-55-7" name="__codelineno-55-7"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-55-8" id="__codelineno-55-8" name="__codelineno-55-8"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-56-1" id="__codelineno-56-1" name="__codelineno-56-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-56-2" id="__codelineno-56-2" name="__codelineno-56-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">constant</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-56-3" id="__codelineno-56-3" name="__codelineno-56-3"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-56-4" id="__codelineno-56-4" name="__codelineno-56-4"></a><span class="w"> </span><span class="nx">size</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">100000</span>
<a href="#__codelineno-56-5" id="__codelineno-56-5" name="__codelineno-56-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">size</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-56-6" id="__codelineno-56-6" name="__codelineno-56-6"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span>
<a href="#__codelineno-56-7" id="__codelineno-56-7" name="__codelineno-56-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-56-8" id="__codelineno-56-8" name="__codelineno-56-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span>
<a href="#__codelineno-56-9" id="__codelineno-56-9" name="__codelineno-56-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-57-1" id="__codelineno-57-1" name="__codelineno-57-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-57-2" id="__codelineno-57-2" name="__codelineno-57-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">constant</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-57-3" id="__codelineno-57-3" name="__codelineno-57-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-57-4" id="__codelineno-57-4" name="__codelineno-57-4"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nv">size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">100_000</span>
<a href="#__codelineno-57-5" id="__codelineno-57-5" name="__codelineno-57-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-57-6" id="__codelineno-57-6" name="__codelineno-57-6"></a><span class="w"> </span><span class="bp">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-57-7" id="__codelineno-57-7" name="__codelineno-57-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-57-8" id="__codelineno-57-8" name="__codelineno-57-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="bp">count</span>
<a href="#__codelineno-57-9" id="__codelineno-57-9" name="__codelineno-57-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-58-1" id="__codelineno-58-1" name="__codelineno-58-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-58-2" id="__codelineno-58-2" name="__codelineno-58-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">constant</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-58-3" id="__codelineno-58-3" name="__codelineno-58-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-58-4" id="__codelineno-58-4" name="__codelineno-58-4"></a><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">100000</span><span class="p">;</span>
<a href="#__codelineno-58-5" id="__codelineno-58-5" name="__codelineno-58-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">size</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-58-6" id="__codelineno-58-6" name="__codelineno-58-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-58-7" id="__codelineno-58-7" name="__codelineno-58-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-59-1" id="__codelineno-59-1" name="__codelineno-59-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-59-2" id="__codelineno-59-2" name="__codelineno-59-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">constant</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-59-3" id="__codelineno-59-3" name="__codelineno-59-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-59-4" id="__codelineno-59-4" name="__codelineno-59-4"></a><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">100000</span><span class="p">;</span>
<a href="#__codelineno-59-5" id="__codelineno-59-5" name="__codelineno-59-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">size</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-59-6" id="__codelineno-59-6" name="__codelineno-59-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-59-7" id="__codelineno-59-7" name="__codelineno-59-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-60-1" id="__codelineno-60-1" name="__codelineno-60-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-60-2" id="__codelineno-60-2" name="__codelineno-60-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">constant</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-60-3" id="__codelineno-60-3" name="__codelineno-60-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span>
<a href="#__codelineno-60-4" id="__codelineno-60-4" name="__codelineno-60-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">100000</span><span class="p">;</span>
<a href="#__codelineno-60-5" id="__codelineno-60-5" name="__codelineno-60-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-60-6" id="__codelineno-60-6" name="__codelineno-60-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-60-7" id="__codelineno-60-7" name="__codelineno-60-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-60-8" id="__codelineno-60-8" name="__codelineno-60-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-60-9" id="__codelineno-60-9" name="__codelineno-60-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-61-1" id="__codelineno-61-1" name="__codelineno-61-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-61-2" id="__codelineno-61-2" name="__codelineno-61-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">constant</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-61-3" id="__codelineno-61-3" name="__codelineno-61-3"></a><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="p">;</span>
<a href="#__codelineno-61-4" id="__codelineno-61-4" name="__codelineno-61-4"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-61-5" id="__codelineno-61-5" name="__codelineno-61-5"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100_000</span><span class="p">;</span>
<a href="#__codelineno-61-6" id="__codelineno-61-6" name="__codelineno-61-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">size</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-61-7" id="__codelineno-61-7" name="__codelineno-61-7"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-61-8" id="__codelineno-61-8" name="__codelineno-61-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-61-9" id="__codelineno-61-9" name="__codelineno-61-9"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-61-10" id="__codelineno-61-10" name="__codelineno-61-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-62-1" id="__codelineno-62-1" name="__codelineno-62-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-62-2" id="__codelineno-62-2" name="__codelineno-62-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">constant</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-62-3" id="__codelineno-62-3" name="__codelineno-62-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-62-4" id="__codelineno-62-4" name="__codelineno-62-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100000</span><span class="p">;</span>
<a href="#__codelineno-62-5" id="__codelineno-62-5" name="__codelineno-62-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">size</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-62-6" id="__codelineno-62-6" name="__codelineno-62-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-62-7" id="__codelineno-62-7" name="__codelineno-62-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-62-8" id="__codelineno-62-8" name="__codelineno-62-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-62-9" id="__codelineno-62-9" name="__codelineno-62-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-63-1" id="__codelineno-63-1" name="__codelineno-63-1"></a><span class="cm">/* 상수 차수 */</span>
<a href="#__codelineno-63-2" id="__codelineno-63-2" name="__codelineno-63-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">constant</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-63-3" id="__codelineno-63-3" name="__codelineno-63-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span>
<a href="#__codelineno-63-4" id="__codelineno-63-4" name="__codelineno-63-4"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">100000</span>
<a href="#__codelineno-63-5" id="__codelineno-63-5" name="__codelineno-63-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">size</span><span class="p">)</span>
<a href="#__codelineno-63-6" id="__codelineno-63-6" name="__codelineno-63-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span>
<a href="#__codelineno-63-7" id="__codelineno-63-7" name="__codelineno-63-7"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-63-8" id="__codelineno-63-8" name="__codelineno-63-8"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-64-1" id="__codelineno-64-1" name="__codelineno-64-1"></a><span class="c1">### 상수 차수 ###</span>
<a href="#__codelineno-64-2" id="__codelineno-64-2" name="__codelineno-64-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">constant</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-64-3" id="__codelineno-64-3" name="__codelineno-64-3"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-64-4" id="__codelineno-64-4" name="__codelineno-64-4"></a><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100000</span>
<a href="#__codelineno-64-5" id="__codelineno-64-5" name="__codelineno-64-5"></a>
<a href="#__codelineno-64-6" id="__codelineno-64-6" name="__codelineno-64-6"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="n">size</span><span class="p">)</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-64-7" id="__codelineno-64-7" name="__codelineno-64-7"></a>
<a href="#__codelineno-64-8" id="__codelineno-64-8" name="__codelineno-64-8"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-64-9" id="__codelineno-64-9" name="__codelineno-64-9"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 459px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20constant%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%83%81%EC%88%98%20%EC%B0%A8%EC%88%98%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20size%20%3D%2010%0A%20%20%20%20for%20_%20in%20range%28size%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20constant%28n%29%0A%20%20%20%20print%28%22%EC%83%81%EC%88%98%20%EC%B0%A8%EC%88%98%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20constant%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%83%81%EC%88%98%20%EC%B0%A8%EC%88%98%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20size%20%3D%2010%0A%20%20%20%20for%20_%20in%20range%28size%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20constant%28n%29%0A%20%20%20%20print%28%22%EC%83%81%EC%88%98%20%EC%B0%A8%EC%88%98%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<h3 id="2-on">2.   선형 시간 <span class="arithmatex">\(O(n)\)</span><a class="headerlink" href="#2-on" title="고유 링크"></a></h3>
<p>선형 시간의 연산 횟수는 입력 데이터 크기 <span class="arithmatex">\(n\)</span>에 대해 선형으로 증가한다. 선형 시간은 보통 단일 반복문에서 나타난다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="6:13"><input checked="checked" id="__tabbed_6_1" name="__tabbed_6" type="radio"/><input id="__tabbed_6_2" name="__tabbed_6" type="radio"/><input id="__tabbed_6_3" name="__tabbed_6" type="radio"/><input id="__tabbed_6_4" name="__tabbed_6" type="radio"/><input id="__tabbed_6_5" name="__tabbed_6" type="radio"/><input id="__tabbed_6_6" name="__tabbed_6" type="radio"/><input id="__tabbed_6_7" name="__tabbed_6" type="radio"/><input id="__tabbed_6_8" name="__tabbed_6" type="radio"/><input id="__tabbed_6_9" name="__tabbed_6" type="radio"/><input id="__tabbed_6_10" name="__tabbed_6" type="radio"/><input id="__tabbed_6_11" name="__tabbed_6" type="radio"/><input id="__tabbed_6_12" name="__tabbed_6" type="radio"/><input id="__tabbed_6_13" name="__tabbed_6" type="radio"/><div class="tabbed-labels"><label for="__tabbed_6_1">Python</label><label for="__tabbed_6_2">C++</label><label for="__tabbed_6_3">Java</label><label for="__tabbed_6_4">C#</label><label for="__tabbed_6_5">Go</label><label for="__tabbed_6_6">Swift</label><label for="__tabbed_6_7">JS</label><label for="__tabbed_6_8">TS</label><label for="__tabbed_6_9">Dart</label><label for="__tabbed_6_10">Rust</label><label for="__tabbed_6_11">C</label><label for="__tabbed_6_12">Kotlin</label><label for="__tabbed_6_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-65-1" id="__codelineno-65-1" name="__codelineno-65-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">linear</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-65-2" id="__codelineno-65-2" name="__codelineno-65-2"></a><span class="w"> </span><span class="sd">"""선형 차수"""</span>
<a href="#__codelineno-65-3" id="__codelineno-65-3" name="__codelineno-65-3"></a> <span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
<a href="#__codelineno-65-4" id="__codelineno-65-4" name="__codelineno-65-4"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
<a href="#__codelineno-65-5" id="__codelineno-65-5" name="__codelineno-65-5"></a> <span class="n">count</span> <span class="o">+=</span> <span class="mi">1</span>
<a href="#__codelineno-65-6" id="__codelineno-65-6" name="__codelineno-65-6"></a> <span class="k">return</span> <span class="n">count</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-66-1" id="__codelineno-66-1" name="__codelineno-66-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-66-2" id="__codelineno-66-2" name="__codelineno-66-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">linear</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-66-3" id="__codelineno-66-3" name="__codelineno-66-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-66-4" id="__codelineno-66-4" name="__codelineno-66-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span>
<a href="#__codelineno-66-5" id="__codelineno-66-5" name="__codelineno-66-5"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-66-6" id="__codelineno-66-6" name="__codelineno-66-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-66-7" id="__codelineno-66-7" name="__codelineno-66-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-67-1" id="__codelineno-67-1" name="__codelineno-67-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-67-2" id="__codelineno-67-2" name="__codelineno-67-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">linear</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-67-3" id="__codelineno-67-3" name="__codelineno-67-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-67-4" id="__codelineno-67-4" name="__codelineno-67-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span>
<a href="#__codelineno-67-5" id="__codelineno-67-5" name="__codelineno-67-5"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-67-6" id="__codelineno-67-6" name="__codelineno-67-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-67-7" id="__codelineno-67-7" name="__codelineno-67-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-68-1" id="__codelineno-68-1" name="__codelineno-68-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-68-2" id="__codelineno-68-2" name="__codelineno-68-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">Linear</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-68-3" id="__codelineno-68-3" name="__codelineno-68-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-68-4" id="__codelineno-68-4" name="__codelineno-68-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span>
<a href="#__codelineno-68-5" id="__codelineno-68-5" name="__codelineno-68-5"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-68-6" id="__codelineno-68-6" name="__codelineno-68-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-68-7" id="__codelineno-68-7" name="__codelineno-68-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-69-1" id="__codelineno-69-1" name="__codelineno-69-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-69-2" id="__codelineno-69-2" name="__codelineno-69-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">linear</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-69-3" id="__codelineno-69-3" name="__codelineno-69-3"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-69-4" id="__codelineno-69-4" name="__codelineno-69-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-69-5" id="__codelineno-69-5" name="__codelineno-69-5"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span>
<a href="#__codelineno-69-6" id="__codelineno-69-6" name="__codelineno-69-6"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-69-7" id="__codelineno-69-7" name="__codelineno-69-7"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span>
<a href="#__codelineno-69-8" id="__codelineno-69-8" name="__codelineno-69-8"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-70-1" id="__codelineno-70-1" name="__codelineno-70-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-70-2" id="__codelineno-70-2" name="__codelineno-70-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">linear</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-70-3" id="__codelineno-70-3" name="__codelineno-70-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-70-4" id="__codelineno-70-4" name="__codelineno-70-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-70-5" id="__codelineno-70-5" name="__codelineno-70-5"></a><span class="w"> </span><span class="bp">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-70-6" id="__codelineno-70-6" name="__codelineno-70-6"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-70-7" id="__codelineno-70-7" name="__codelineno-70-7"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="bp">count</span>
<a href="#__codelineno-70-8" id="__codelineno-70-8" name="__codelineno-70-8"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-71-1" id="__codelineno-71-1" name="__codelineno-71-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-71-2" id="__codelineno-71-2" name="__codelineno-71-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">linear</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-71-3" id="__codelineno-71-3" name="__codelineno-71-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-71-4" id="__codelineno-71-4" name="__codelineno-71-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-71-5" id="__codelineno-71-5" name="__codelineno-71-5"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-71-6" id="__codelineno-71-6" name="__codelineno-71-6"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-72-1" id="__codelineno-72-1" name="__codelineno-72-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-72-2" id="__codelineno-72-2" name="__codelineno-72-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">linear</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-72-3" id="__codelineno-72-3" name="__codelineno-72-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-72-4" id="__codelineno-72-4" name="__codelineno-72-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-72-5" id="__codelineno-72-5" name="__codelineno-72-5"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-72-6" id="__codelineno-72-6" name="__codelineno-72-6"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-73-1" id="__codelineno-73-1" name="__codelineno-73-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-73-2" id="__codelineno-73-2" name="__codelineno-73-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">linear</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-73-3" id="__codelineno-73-3" name="__codelineno-73-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span>
<a href="#__codelineno-73-4" id="__codelineno-73-4" name="__codelineno-73-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-73-5" id="__codelineno-73-5" name="__codelineno-73-5"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-73-6" id="__codelineno-73-6" name="__codelineno-73-6"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-73-7" id="__codelineno-73-7" name="__codelineno-73-7"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-73-8" id="__codelineno-73-8" name="__codelineno-73-8"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-74-1" id="__codelineno-74-1" name="__codelineno-74-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-74-2" id="__codelineno-74-2" name="__codelineno-74-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">linear</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-74-3" id="__codelineno-74-3" name="__codelineno-74-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-74-4" id="__codelineno-74-4" name="__codelineno-74-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-74-5" id="__codelineno-74-5" name="__codelineno-74-5"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-74-6" id="__codelineno-74-6" name="__codelineno-74-6"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-74-7" id="__codelineno-74-7" name="__codelineno-74-7"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-74-8" id="__codelineno-74-8" name="__codelineno-74-8"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-75-1" id="__codelineno-75-1" name="__codelineno-75-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-75-2" id="__codelineno-75-2" name="__codelineno-75-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">linear</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-75-3" id="__codelineno-75-3" name="__codelineno-75-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-75-4" id="__codelineno-75-4" name="__codelineno-75-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-75-5" id="__codelineno-75-5" name="__codelineno-75-5"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-75-6" id="__codelineno-75-6" name="__codelineno-75-6"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-75-7" id="__codelineno-75-7" name="__codelineno-75-7"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-75-8" id="__codelineno-75-8" name="__codelineno-75-8"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-76-1" id="__codelineno-76-1" name="__codelineno-76-1"></a><span class="cm">/* 선형 차수 */</span>
<a href="#__codelineno-76-2" id="__codelineno-76-2" name="__codelineno-76-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">linear</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-76-3" id="__codelineno-76-3" name="__codelineno-76-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span>
<a href="#__codelineno-76-4" id="__codelineno-76-4" name="__codelineno-76-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-76-5" id="__codelineno-76-5" name="__codelineno-76-5"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span>
<a href="#__codelineno-76-6" id="__codelineno-76-6" name="__codelineno-76-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-76-7" id="__codelineno-76-7" name="__codelineno-76-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-77-1" id="__codelineno-77-1" name="__codelineno-77-1"></a><span class="c1">### 선형 차수 ###</span>
<a href="#__codelineno-77-2" id="__codelineno-77-2" name="__codelineno-77-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">linear</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-77-3" id="__codelineno-77-3" name="__codelineno-77-3"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-77-4" id="__codelineno-77-4" name="__codelineno-77-4"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="n">n</span><span class="p">)</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-77-5" id="__codelineno-77-5" name="__codelineno-77-5"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-77-6" id="__codelineno-77-6" name="__codelineno-77-6"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 441px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20linear%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%84%A0%ED%98%95%20%EC%B0%A8%EC%88%98%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20linear%28n%29%0A%20%20%20%20print%28%22%EC%84%A0%ED%98%95%20%EC%B0%A8%EC%88%98%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20linear%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%84%A0%ED%98%95%20%EC%B0%A8%EC%88%98%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20linear%28n%29%0A%20%20%20%20print%28%22%EC%84%A0%ED%98%95%20%EC%B0%A8%EC%88%98%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<p>배열 순회와 연결 리스트 순회 등의 연산은 시간 복잡도가 모두 <span class="arithmatex">\(O(n)\)</span>이다. 여기서 <span class="arithmatex">\(n\)</span>은 배열이나 연결 리스트의 길이다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="7:13"><input checked="checked" id="__tabbed_7_1" name="__tabbed_7" type="radio"/><input id="__tabbed_7_2" name="__tabbed_7" type="radio"/><input id="__tabbed_7_3" name="__tabbed_7" type="radio"/><input id="__tabbed_7_4" name="__tabbed_7" type="radio"/><input id="__tabbed_7_5" name="__tabbed_7" type="radio"/><input id="__tabbed_7_6" name="__tabbed_7" type="radio"/><input id="__tabbed_7_7" name="__tabbed_7" type="radio"/><input id="__tabbed_7_8" name="__tabbed_7" type="radio"/><input id="__tabbed_7_9" name="__tabbed_7" type="radio"/><input id="__tabbed_7_10" name="__tabbed_7" type="radio"/><input id="__tabbed_7_11" name="__tabbed_7" type="radio"/><input id="__tabbed_7_12" name="__tabbed_7" type="radio"/><input id="__tabbed_7_13" name="__tabbed_7" type="radio"/><div class="tabbed-labels"><label for="__tabbed_7_1">Python</label><label for="__tabbed_7_2">C++</label><label for="__tabbed_7_3">Java</label><label for="__tabbed_7_4">C#</label><label for="__tabbed_7_5">Go</label><label for="__tabbed_7_6">Swift</label><label for="__tabbed_7_7">JS</label><label for="__tabbed_7_8">TS</label><label for="__tabbed_7_9">Dart</label><label for="__tabbed_7_10">Rust</label><label for="__tabbed_7_11">C</label><label for="__tabbed_7_12">Kotlin</label><label for="__tabbed_7_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-78-1" id="__codelineno-78-1" name="__codelineno-78-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">array_traversal</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-78-2" id="__codelineno-78-2" name="__codelineno-78-2"></a><span class="w"> </span><span class="sd">"""선형 차수(배열 순회)"""</span>
<a href="#__codelineno-78-3" id="__codelineno-78-3" name="__codelineno-78-3"></a> <span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
<a href="#__codelineno-78-4" id="__codelineno-78-4" name="__codelineno-78-4"></a> <span class="c1"># 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-78-5" id="__codelineno-78-5" name="__codelineno-78-5"></a> <span class="k">for</span> <span class="n">num</span> <span class="ow">in</span> <span class="n">nums</span><span class="p">:</span>
<a href="#__codelineno-78-6" id="__codelineno-78-6" name="__codelineno-78-6"></a> <span class="n">count</span> <span class="o">+=</span> <span class="mi">1</span>
<a href="#__codelineno-78-7" id="__codelineno-78-7" name="__codelineno-78-7"></a> <span class="k">return</span> <span class="n">count</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-79-1" id="__codelineno-79-1" name="__codelineno-79-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-79-2" id="__codelineno-79-2" name="__codelineno-79-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">arrayTraversal</span><span class="p">(</span><span class="n">vector</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="o">&amp;</span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-79-3" id="__codelineno-79-3" name="__codelineno-79-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-79-4" id="__codelineno-79-4" name="__codelineno-79-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-79-5" id="__codelineno-79-5" name="__codelineno-79-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-79-6" id="__codelineno-79-6" name="__codelineno-79-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-79-7" id="__codelineno-79-7" name="__codelineno-79-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-79-8" id="__codelineno-79-8" name="__codelineno-79-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-79-9" id="__codelineno-79-9" name="__codelineno-79-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-80-1" id="__codelineno-80-1" name="__codelineno-80-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-80-2" id="__codelineno-80-2" name="__codelineno-80-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">arrayTraversal</span><span class="p">(</span><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-80-3" id="__codelineno-80-3" name="__codelineno-80-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-80-4" id="__codelineno-80-4" name="__codelineno-80-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-80-5" id="__codelineno-80-5" name="__codelineno-80-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-80-6" id="__codelineno-80-6" name="__codelineno-80-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-80-7" id="__codelineno-80-7" name="__codelineno-80-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-80-8" id="__codelineno-80-8" name="__codelineno-80-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-80-9" id="__codelineno-80-9" name="__codelineno-80-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-81-1" id="__codelineno-81-1" name="__codelineno-81-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-81-2" id="__codelineno-81-2" name="__codelineno-81-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">ArrayTraversal</span><span class="p">(</span><span class="kt">int</span><span class="p">[]</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-81-3" id="__codelineno-81-3" name="__codelineno-81-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-81-4" id="__codelineno-81-4" name="__codelineno-81-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-81-5" id="__codelineno-81-5" name="__codelineno-81-5"></a><span class="w"> </span><span class="k">foreach</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-81-6" id="__codelineno-81-6" name="__codelineno-81-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-81-7" id="__codelineno-81-7" name="__codelineno-81-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-81-8" id="__codelineno-81-8" name="__codelineno-81-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-81-9" id="__codelineno-81-9" name="__codelineno-81-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-82-1" id="__codelineno-82-1" name="__codelineno-82-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-82-2" id="__codelineno-82-2" name="__codelineno-82-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">arrayTraversal</span><span class="p">(</span><span class="nx">nums</span><span class="w"> </span><span class="p">[]</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-82-3" id="__codelineno-82-3" name="__codelineno-82-3"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-82-4" id="__codelineno-82-4" name="__codelineno-82-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-82-5" id="__codelineno-82-5" name="__codelineno-82-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="k">range</span><span class="w"> </span><span class="nx">nums</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-82-6" id="__codelineno-82-6" name="__codelineno-82-6"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span>
<a href="#__codelineno-82-7" id="__codelineno-82-7" name="__codelineno-82-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-82-8" id="__codelineno-82-8" name="__codelineno-82-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span>
<a href="#__codelineno-82-9" id="__codelineno-82-9" name="__codelineno-82-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-83-1" id="__codelineno-83-1" name="__codelineno-83-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-83-2" id="__codelineno-83-2" name="__codelineno-83-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">arrayTraversal</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="nb">Int</span><span class="p">])</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-83-3" id="__codelineno-83-3" name="__codelineno-83-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-83-4" id="__codelineno-83-4" name="__codelineno-83-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-83-5" id="__codelineno-83-5" name="__codelineno-83-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nums</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-83-6" id="__codelineno-83-6" name="__codelineno-83-6"></a><span class="w"> </span><span class="bp">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-83-7" id="__codelineno-83-7" name="__codelineno-83-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-83-8" id="__codelineno-83-8" name="__codelineno-83-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="bp">count</span>
<a href="#__codelineno-83-9" id="__codelineno-83-9" name="__codelineno-83-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-84-1" id="__codelineno-84-1" name="__codelineno-84-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-84-2" id="__codelineno-84-2" name="__codelineno-84-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">arrayTraversal</span><span class="p">(</span><span class="nx">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-84-3" id="__codelineno-84-3" name="__codelineno-84-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-84-4" id="__codelineno-84-4" name="__codelineno-84-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-84-5" id="__codelineno-84-5" name="__codelineno-84-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">nums</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-84-6" id="__codelineno-84-6" name="__codelineno-84-6"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-84-7" id="__codelineno-84-7" name="__codelineno-84-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-84-8" id="__codelineno-84-8" name="__codelineno-84-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-84-9" id="__codelineno-84-9" name="__codelineno-84-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-85-1" id="__codelineno-85-1" name="__codelineno-85-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-85-2" id="__codelineno-85-2" name="__codelineno-85-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">arrayTraversal</span><span class="p">(</span><span class="nx">nums</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[])</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-85-3" id="__codelineno-85-3" name="__codelineno-85-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-85-4" id="__codelineno-85-4" name="__codelineno-85-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-85-5" id="__codelineno-85-5" name="__codelineno-85-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">nums</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-85-6" id="__codelineno-85-6" name="__codelineno-85-6"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-85-7" id="__codelineno-85-7" name="__codelineno-85-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-85-8" id="__codelineno-85-8" name="__codelineno-85-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-85-9" id="__codelineno-85-9" name="__codelineno-85-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-86-1" id="__codelineno-86-1" name="__codelineno-86-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-86-2" id="__codelineno-86-2" name="__codelineno-86-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">arrayTraversal</span><span class="p">(</span><span class="n">List</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-86-3" id="__codelineno-86-3" name="__codelineno-86-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span>
<a href="#__codelineno-86-4" id="__codelineno-86-4" name="__codelineno-86-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-86-5" id="__codelineno-86-5" name="__codelineno-86-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">_num</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-86-6" id="__codelineno-86-6" name="__codelineno-86-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-86-7" id="__codelineno-86-7" name="__codelineno-86-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-86-8" id="__codelineno-86-8" name="__codelineno-86-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-86-9" id="__codelineno-86-9" name="__codelineno-86-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-87-1" id="__codelineno-87-1" name="__codelineno-87-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-87-2" id="__codelineno-87-2" name="__codelineno-87-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">array_traversal</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </span><span class="kp">&amp;</span><span class="p">[</span><span class="kt">i32</span><span class="p">])</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-87-3" id="__codelineno-87-3" name="__codelineno-87-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-87-4" id="__codelineno-87-4" name="__codelineno-87-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-87-5" id="__codelineno-87-5" name="__codelineno-87-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nums</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-87-6" id="__codelineno-87-6" name="__codelineno-87-6"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-87-7" id="__codelineno-87-7" name="__codelineno-87-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-87-8" id="__codelineno-87-8" name="__codelineno-87-8"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-87-9" id="__codelineno-87-9" name="__codelineno-87-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-88-1" id="__codelineno-88-1" name="__codelineno-88-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-88-2" id="__codelineno-88-2" name="__codelineno-88-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">arrayTraversal</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">nums</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-88-3" id="__codelineno-88-3" name="__codelineno-88-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-88-4" id="__codelineno-88-4" name="__codelineno-88-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-88-5" id="__codelineno-88-5" name="__codelineno-88-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-88-6" id="__codelineno-88-6" name="__codelineno-88-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-88-7" id="__codelineno-88-7" name="__codelineno-88-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-88-8" id="__codelineno-88-8" name="__codelineno-88-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-88-9" id="__codelineno-88-9" name="__codelineno-88-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-89-1" id="__codelineno-89-1" name="__codelineno-89-1"></a><span class="cm">/* 선형 차수(배열 순회) */</span>
<a href="#__codelineno-89-2" id="__codelineno-89-2" name="__codelineno-89-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">arrayTraversal</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </span><span class="n">IntArray</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-89-3" id="__codelineno-89-3" name="__codelineno-89-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span>
<a href="#__codelineno-89-4" id="__codelineno-89-4" name="__codelineno-89-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-89-5" id="__codelineno-89-5" name="__codelineno-89-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">num</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-89-6" id="__codelineno-89-6" name="__codelineno-89-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span>
<a href="#__codelineno-89-7" id="__codelineno-89-7" name="__codelineno-89-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-89-8" id="__codelineno-89-8" name="__codelineno-89-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-89-9" id="__codelineno-89-9" name="__codelineno-89-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-90-1" id="__codelineno-90-1" name="__codelineno-90-1"></a><span class="c1">### 선형 차수(배열 순회)###</span>
<a href="#__codelineno-90-2" id="__codelineno-90-2" name="__codelineno-90-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">array_traversal</span><span class="p">(</span><span class="n">nums</span><span class="p">)</span>
<a href="#__codelineno-90-3" id="__codelineno-90-3" name="__codelineno-90-3"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-90-4" id="__codelineno-90-4" name="__codelineno-90-4"></a>
<a href="#__codelineno-90-5" id="__codelineno-90-5" name="__codelineno-90-5"></a><span class="w"> </span><span class="c1"># 반복 횟수는 배열 길이에 비례한다</span>
<a href="#__codelineno-90-6" id="__codelineno-90-6" name="__codelineno-90-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nums</span>
<a href="#__codelineno-90-7" id="__codelineno-90-7" name="__codelineno-90-7"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-90-8" id="__codelineno-90-8" name="__codelineno-90-8"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-90-9" id="__codelineno-90-9" name="__codelineno-90-9"></a>
<a href="#__codelineno-90-10" id="__codelineno-90-10" name="__codelineno-90-10"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-90-11" id="__codelineno-90-11" name="__codelineno-90-11"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 459px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20array_traversal%28nums%3A%20list%5Bint%5D%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%84%A0%ED%98%95%20%EC%B0%A8%EC%88%98%28%EB%B0%B0%EC%97%B4%20%EC%88%9C%ED%9A%8C%29%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20%23%20%EB%B0%98%EB%B3%B5%20%ED%9A%9F%EC%88%98%EB%8A%94%20%EB%B0%B0%EC%97%B4%20%EA%B8%B8%EC%9D%B4%EC%97%90%20%EB%B9%84%EB%A1%80%ED%95%9C%EB%8B%A4%0A%20%20%20%20for%20num%20in%20nums%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20array_traversal%28%5B0%5D%20%2A%20n%29%0A%20%20%20%20print%28%22%EC%84%A0%ED%98%95%20%EC%B0%A8%EC%88%98%28%EB%B0%B0%EC%97%B4%20%EC%88%9C%ED%9A%8C%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20array_traversal%28nums%3A%20list%5Bint%5D%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%84%A0%ED%98%95%20%EC%B0%A8%EC%88%98%28%EB%B0%B0%EC%97%B4%20%EC%88%9C%ED%9A%8C%29%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20%23%20%EB%B0%98%EB%B3%B5%20%ED%9A%9F%EC%88%98%EB%8A%94%20%EB%B0%B0%EC%97%B4%20%EA%B8%B8%EC%9D%B4%EC%97%90%20%EB%B9%84%EB%A1%80%ED%95%9C%EB%8B%A4%0A%20%20%20%20for%20num%20in%20nums%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20array_traversal%28%5B0%5D%20%2A%20n%29%0A%20%20%20%20print%28%22%EC%84%A0%ED%98%95%20%EC%B0%A8%EC%88%98%28%EB%B0%B0%EC%97%B4%20%EC%88%9C%ED%9A%8C%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<p><strong>입력 데이터 크기 <span class="arithmatex">\(n\)</span>은 입력 데이터의 종류에 따라 구체적으로 정해야 한다</strong>는 점에 주의하자. 첫 번째 예에서는 변수 <span class="arithmatex">\(n\)</span>이 입력 데이터 크기이고, 두 번째 예에서는 배열의 길이 <span class="arithmatex">\(n\)</span>이 데이터 크기다.</p>
<h3 id="3-on2">3.   제곱 시간 <span class="arithmatex">\(O(n^2)\)</span><a class="headerlink" href="#3-on2" title="고유 링크"></a></h3>
<p>제곱 시간의 연산 횟수는 입력 데이터 크기 <span class="arithmatex">\(n\)</span>의 제곱에 비례하여 증가한다. 보통 중첩 반복문에서 나타나며, 바깥쪽과 안쪽 반복문의 시간 복잡도가 각각 <span class="arithmatex">\(O(n)\)</span>이므로 전체 시간 복잡도는 <span class="arithmatex">\(O(n^2)\)</span>이다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="8:13"><input checked="checked" id="__tabbed_8_1" name="__tabbed_8" type="radio"/><input id="__tabbed_8_2" name="__tabbed_8" type="radio"/><input id="__tabbed_8_3" name="__tabbed_8" type="radio"/><input id="__tabbed_8_4" name="__tabbed_8" type="radio"/><input id="__tabbed_8_5" name="__tabbed_8" type="radio"/><input id="__tabbed_8_6" name="__tabbed_8" type="radio"/><input id="__tabbed_8_7" name="__tabbed_8" type="radio"/><input id="__tabbed_8_8" name="__tabbed_8" type="radio"/><input id="__tabbed_8_9" name="__tabbed_8" type="radio"/><input id="__tabbed_8_10" name="__tabbed_8" type="radio"/><input id="__tabbed_8_11" name="__tabbed_8" type="radio"/><input id="__tabbed_8_12" name="__tabbed_8" type="radio"/><input id="__tabbed_8_13" name="__tabbed_8" type="radio"/><div class="tabbed-labels"><label for="__tabbed_8_1">Python</label><label for="__tabbed_8_2">C++</label><label for="__tabbed_8_3">Java</label><label for="__tabbed_8_4">C#</label><label for="__tabbed_8_5">Go</label><label for="__tabbed_8_6">Swift</label><label for="__tabbed_8_7">JS</label><label for="__tabbed_8_8">TS</label><label for="__tabbed_8_9">Dart</label><label for="__tabbed_8_10">Rust</label><label for="__tabbed_8_11">C</label><label for="__tabbed_8_12">Kotlin</label><label for="__tabbed_8_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-91-1" id="__codelineno-91-1" name="__codelineno-91-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">quadratic</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-91-2" id="__codelineno-91-2" name="__codelineno-91-2"></a><span class="w"> </span><span class="sd">"""제곱 차수"""</span>
<a href="#__codelineno-91-3" id="__codelineno-91-3" name="__codelineno-91-3"></a> <span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
<a href="#__codelineno-91-4" id="__codelineno-91-4" name="__codelineno-91-4"></a> <span class="c1"># 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-91-5" id="__codelineno-91-5" name="__codelineno-91-5"></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
<a href="#__codelineno-91-6" id="__codelineno-91-6" name="__codelineno-91-6"></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
<a href="#__codelineno-91-7" id="__codelineno-91-7" name="__codelineno-91-7"></a> <span class="n">count</span> <span class="o">+=</span> <span class="mi">1</span>
<a href="#__codelineno-91-8" id="__codelineno-91-8" name="__codelineno-91-8"></a> <span class="k">return</span> <span class="n">count</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-92-1" id="__codelineno-92-1" name="__codelineno-92-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-92-2" id="__codelineno-92-2" name="__codelineno-92-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">quadratic</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-92-3" id="__codelineno-92-3" name="__codelineno-92-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-92-4" id="__codelineno-92-4" name="__codelineno-92-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-92-5" id="__codelineno-92-5" name="__codelineno-92-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-92-6" id="__codelineno-92-6" name="__codelineno-92-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-92-7" id="__codelineno-92-7" name="__codelineno-92-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-92-8" id="__codelineno-92-8" name="__codelineno-92-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-92-9" id="__codelineno-92-9" name="__codelineno-92-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-92-10" id="__codelineno-92-10" name="__codelineno-92-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-92-11" id="__codelineno-92-11" name="__codelineno-92-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-93-1" id="__codelineno-93-1" name="__codelineno-93-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-93-2" id="__codelineno-93-2" name="__codelineno-93-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">quadratic</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-93-3" id="__codelineno-93-3" name="__codelineno-93-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-93-4" id="__codelineno-93-4" name="__codelineno-93-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-93-5" id="__codelineno-93-5" name="__codelineno-93-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-93-6" id="__codelineno-93-6" name="__codelineno-93-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-93-7" id="__codelineno-93-7" name="__codelineno-93-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-93-8" id="__codelineno-93-8" name="__codelineno-93-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-93-9" id="__codelineno-93-9" name="__codelineno-93-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-93-10" id="__codelineno-93-10" name="__codelineno-93-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-93-11" id="__codelineno-93-11" name="__codelineno-93-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-94-1" id="__codelineno-94-1" name="__codelineno-94-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-94-2" id="__codelineno-94-2" name="__codelineno-94-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">Quadratic</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-94-3" id="__codelineno-94-3" name="__codelineno-94-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-94-4" id="__codelineno-94-4" name="__codelineno-94-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-94-5" id="__codelineno-94-5" name="__codelineno-94-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-94-6" id="__codelineno-94-6" name="__codelineno-94-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-94-7" id="__codelineno-94-7" name="__codelineno-94-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-94-8" id="__codelineno-94-8" name="__codelineno-94-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-94-9" id="__codelineno-94-9" name="__codelineno-94-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-94-10" id="__codelineno-94-10" name="__codelineno-94-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-94-11" id="__codelineno-94-11" name="__codelineno-94-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-95-1" id="__codelineno-95-1" name="__codelineno-95-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-95-2" id="__codelineno-95-2" name="__codelineno-95-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">quadratic</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-95-3" id="__codelineno-95-3" name="__codelineno-95-3"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-95-4" id="__codelineno-95-4" name="__codelineno-95-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-95-5" id="__codelineno-95-5" name="__codelineno-95-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-95-6" id="__codelineno-95-6" name="__codelineno-95-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-95-7" id="__codelineno-95-7" name="__codelineno-95-7"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span>
<a href="#__codelineno-95-8" id="__codelineno-95-8" name="__codelineno-95-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-95-9" id="__codelineno-95-9" name="__codelineno-95-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-95-10" id="__codelineno-95-10" name="__codelineno-95-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span>
<a href="#__codelineno-95-11" id="__codelineno-95-11" name="__codelineno-95-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-96-1" id="__codelineno-96-1" name="__codelineno-96-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-96-2" id="__codelineno-96-2" name="__codelineno-96-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">quadratic</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-96-3" id="__codelineno-96-3" name="__codelineno-96-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-96-4" id="__codelineno-96-4" name="__codelineno-96-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-96-5" id="__codelineno-96-5" name="__codelineno-96-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-96-6" id="__codelineno-96-6" name="__codelineno-96-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-96-7" id="__codelineno-96-7" name="__codelineno-96-7"></a><span class="w"> </span><span class="bp">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-96-8" id="__codelineno-96-8" name="__codelineno-96-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-96-9" id="__codelineno-96-9" name="__codelineno-96-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-96-10" id="__codelineno-96-10" name="__codelineno-96-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="bp">count</span>
<a href="#__codelineno-96-11" id="__codelineno-96-11" name="__codelineno-96-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-97-1" id="__codelineno-97-1" name="__codelineno-97-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-97-2" id="__codelineno-97-2" name="__codelineno-97-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">quadratic</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-97-3" id="__codelineno-97-3" name="__codelineno-97-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-97-4" id="__codelineno-97-4" name="__codelineno-97-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-97-5" id="__codelineno-97-5" name="__codelineno-97-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-97-6" id="__codelineno-97-6" name="__codelineno-97-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-97-7" id="__codelineno-97-7" name="__codelineno-97-7"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-97-8" id="__codelineno-97-8" name="__codelineno-97-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-97-9" id="__codelineno-97-9" name="__codelineno-97-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-97-10" id="__codelineno-97-10" name="__codelineno-97-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-97-11" id="__codelineno-97-11" name="__codelineno-97-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-98-1" id="__codelineno-98-1" name="__codelineno-98-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-98-2" id="__codelineno-98-2" name="__codelineno-98-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">quadratic</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-98-3" id="__codelineno-98-3" name="__codelineno-98-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-98-4" id="__codelineno-98-4" name="__codelineno-98-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-98-5" id="__codelineno-98-5" name="__codelineno-98-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-98-6" id="__codelineno-98-6" name="__codelineno-98-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-98-7" id="__codelineno-98-7" name="__codelineno-98-7"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-98-8" id="__codelineno-98-8" name="__codelineno-98-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-98-9" id="__codelineno-98-9" name="__codelineno-98-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-98-10" id="__codelineno-98-10" name="__codelineno-98-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-98-11" id="__codelineno-98-11" name="__codelineno-98-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-99-1" id="__codelineno-99-1" name="__codelineno-99-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-99-2" id="__codelineno-99-2" name="__codelineno-99-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">quadratic</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-99-3" id="__codelineno-99-3" name="__codelineno-99-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span>
<a href="#__codelineno-99-4" id="__codelineno-99-4" name="__codelineno-99-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-99-5" id="__codelineno-99-5" name="__codelineno-99-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-99-6" id="__codelineno-99-6" name="__codelineno-99-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-99-7" id="__codelineno-99-7" name="__codelineno-99-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-99-8" id="__codelineno-99-8" name="__codelineno-99-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-99-9" id="__codelineno-99-9" name="__codelineno-99-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-99-10" id="__codelineno-99-10" name="__codelineno-99-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-99-11" id="__codelineno-99-11" name="__codelineno-99-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-100-1" id="__codelineno-100-1" name="__codelineno-100-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-100-2" id="__codelineno-100-2" name="__codelineno-100-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">quadratic</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-100-3" id="__codelineno-100-3" name="__codelineno-100-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-100-4" id="__codelineno-100-4" name="__codelineno-100-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-100-5" id="__codelineno-100-5" name="__codelineno-100-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-100-6" id="__codelineno-100-6" name="__codelineno-100-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-100-7" id="__codelineno-100-7" name="__codelineno-100-7"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-100-8" id="__codelineno-100-8" name="__codelineno-100-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-100-9" id="__codelineno-100-9" name="__codelineno-100-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-100-10" id="__codelineno-100-10" name="__codelineno-100-10"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-100-11" id="__codelineno-100-11" name="__codelineno-100-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-101-1" id="__codelineno-101-1" name="__codelineno-101-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-101-2" id="__codelineno-101-2" name="__codelineno-101-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">quadratic</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-101-3" id="__codelineno-101-3" name="__codelineno-101-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-101-4" id="__codelineno-101-4" name="__codelineno-101-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-101-5" id="__codelineno-101-5" name="__codelineno-101-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-101-6" id="__codelineno-101-6" name="__codelineno-101-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-101-7" id="__codelineno-101-7" name="__codelineno-101-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-101-8" id="__codelineno-101-8" name="__codelineno-101-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-101-9" id="__codelineno-101-9" name="__codelineno-101-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-101-10" id="__codelineno-101-10" name="__codelineno-101-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-101-11" id="__codelineno-101-11" name="__codelineno-101-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-102-1" id="__codelineno-102-1" name="__codelineno-102-1"></a><span class="cm">/* 제곱 차수 */</span>
<a href="#__codelineno-102-2" id="__codelineno-102-2" name="__codelineno-102-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">quadratic</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-102-3" id="__codelineno-102-3" name="__codelineno-102-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span>
<a href="#__codelineno-102-4" id="__codelineno-102-4" name="__codelineno-102-4"></a><span class="w"> </span><span class="c1">// 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-102-5" id="__codelineno-102-5" name="__codelineno-102-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-102-6" id="__codelineno-102-6" name="__codelineno-102-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-102-7" id="__codelineno-102-7" name="__codelineno-102-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span>
<a href="#__codelineno-102-8" id="__codelineno-102-8" name="__codelineno-102-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-102-9" id="__codelineno-102-9" name="__codelineno-102-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-102-10" id="__codelineno-102-10" name="__codelineno-102-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-102-11" id="__codelineno-102-11" name="__codelineno-102-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-103-1" id="__codelineno-103-1" name="__codelineno-103-1"></a><span class="c1">### 제곱 차수 ###</span>
<a href="#__codelineno-103-2" id="__codelineno-103-2" name="__codelineno-103-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">quadratic</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-103-3" id="__codelineno-103-3" name="__codelineno-103-3"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-103-4" id="__codelineno-103-4" name="__codelineno-103-4"></a>
<a href="#__codelineno-103-5" id="__codelineno-103-5" name="__codelineno-103-5"></a><span class="w"> </span><span class="c1"># 반복 횟수는 데이터 크기 n의 제곱에 비례한다</span>
<a href="#__codelineno-103-6" id="__codelineno-103-6" name="__codelineno-103-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">...</span><span class="n">n</span>
<a href="#__codelineno-103-7" id="__codelineno-103-7" name="__codelineno-103-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">...</span><span class="n">n</span>
<a href="#__codelineno-103-8" id="__codelineno-103-8" name="__codelineno-103-8"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-103-9" id="__codelineno-103-9" name="__codelineno-103-9"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-103-10" id="__codelineno-103-10" name="__codelineno-103-10"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-103-11" id="__codelineno-103-11" name="__codelineno-103-11"></a>
<a href="#__codelineno-103-12" id="__codelineno-103-12" name="__codelineno-103-12"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-103-13" id="__codelineno-103-13" name="__codelineno-103-13"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 477px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20quadratic%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%A0%9C%EA%B3%B1%20%EC%B0%A8%EC%88%98%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20%23%20%EB%B0%98%EB%B3%B5%20%ED%9A%9F%EC%88%98%EB%8A%94%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%EC%9D%98%20%EC%A0%9C%EA%B3%B1%EC%97%90%20%EB%B9%84%EB%A1%80%ED%95%9C%EB%8B%A4%0A%20%20%20%20for%20i%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20for%20j%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20quadratic%28n%29%0A%20%20%20%20print%28%22%EC%A0%9C%EA%B3%B1%20%EC%B0%A8%EC%88%98%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20quadratic%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%A0%9C%EA%B3%B1%20%EC%B0%A8%EC%88%98%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20%23%20%EB%B0%98%EB%B3%B5%20%ED%9A%9F%EC%88%98%EB%8A%94%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%EC%9D%98%20%EC%A0%9C%EA%B3%B1%EC%97%90%20%EB%B9%84%EB%A1%80%ED%95%9C%EB%8B%A4%0A%20%20%20%20for%20i%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20for%20j%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20quadratic%28n%29%0A%20%20%20%20print%28%22%EC%A0%9C%EA%B3%B1%20%EC%B0%A8%EC%88%98%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<p>아래 그림(2-10)은 상수 시간, 선형 시간, 제곱 시간의 세 가지 시간 복잡도를 비교한다.</p>
<p><ha-svg-figure class="animation-figure" data-book-key="ko/chapter_computational_complexity/time_complexity.assets/time_complexity_constant_linear_quadratic.png" data-dark-src="/assets/figure-svg/figures/086989df0c8940b1b49c0e5c.json" data-src="/assets/figure-svg/figures/b07c352807161c5e50e5a6cb.json" style=";--figure-ratio:960.0/540.0"><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_constant_linear_quadratic.svg" data-theme="light" tabindex="-1" type="image/svg+xml">상수 시간, 선형 시간, 제곱 시간의 시간 복잡도</object><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_constant_linear_quadratic.dark.svg" data-theme="dark" tabindex="-1" type="image/svg+xml">상수 시간, 선형 시간, 제곱 시간의 시간 복잡도</object></ha-svg-figure></p>
<p align="center"> 그림 2-10   상수 시간, 선형 시간, 제곱 시간의 시간 복잡도 </p>
<p>버블 정렬을 예로 들면, 바깥쪽 반복문은 <span class="arithmatex">\(n - 1\)</span>번 실행되고 안쪽 반복문은 <span class="arithmatex">\(n-1\)</span>, <span class="arithmatex">\(n-2\)</span>, <span class="arithmatex">\(\dots\)</span>, <span class="arithmatex">\(2\)</span>, <span class="arithmatex">\(1\)</span>번, 평균 <span class="arithmatex">\(n / 2\)</span>번 실행된다. 따라서 시간 복잡도는 <span class="arithmatex">\(O((n - 1) n / 2) = O(n^2)\)</span>이다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="9:13"><input checked="checked" id="__tabbed_9_1" name="__tabbed_9" type="radio"/><input id="__tabbed_9_2" name="__tabbed_9" type="radio"/><input id="__tabbed_9_3" name="__tabbed_9" type="radio"/><input id="__tabbed_9_4" name="__tabbed_9" type="radio"/><input id="__tabbed_9_5" name="__tabbed_9" type="radio"/><input id="__tabbed_9_6" name="__tabbed_9" type="radio"/><input id="__tabbed_9_7" name="__tabbed_9" type="radio"/><input id="__tabbed_9_8" name="__tabbed_9" type="radio"/><input id="__tabbed_9_9" name="__tabbed_9" type="radio"/><input id="__tabbed_9_10" name="__tabbed_9" type="radio"/><input id="__tabbed_9_11" name="__tabbed_9" type="radio"/><input id="__tabbed_9_12" name="__tabbed_9" type="radio"/><input id="__tabbed_9_13" name="__tabbed_9" type="radio"/><div class="tabbed-labels"><label for="__tabbed_9_1">Python</label><label for="__tabbed_9_2">C++</label><label for="__tabbed_9_3">Java</label><label for="__tabbed_9_4">C#</label><label for="__tabbed_9_5">Go</label><label for="__tabbed_9_6">Swift</label><label for="__tabbed_9_7">JS</label><label for="__tabbed_9_8">TS</label><label for="__tabbed_9_9">Dart</label><label for="__tabbed_9_10">Rust</label><label for="__tabbed_9_11">C</label><label for="__tabbed_9_12">Kotlin</label><label for="__tabbed_9_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-104-1" id="__codelineno-104-1" name="__codelineno-104-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">bubble_sort</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-104-2" id="__codelineno-104-2" name="__codelineno-104-2"></a><span class="w"> </span><span class="sd">"""제곱 차수(버블 정렬)"""</span>
<a href="#__codelineno-104-3" id="__codelineno-104-3" name="__codelineno-104-3"></a> <span class="n">count</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1"># 카운터</span>
<a href="#__codelineno-104-4" id="__codelineno-104-4" name="__codelineno-104-4"></a> <span class="c1"># 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-104-5" id="__codelineno-104-5" name="__codelineno-104-5"></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">nums</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">):</span>
<a href="#__codelineno-104-6" id="__codelineno-104-6" name="__codelineno-104-6"></a> <span class="c1"># 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-104-7" id="__codelineno-104-7" name="__codelineno-104-7"></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">i</span><span class="p">):</span>
<a href="#__codelineno-104-8" id="__codelineno-104-8" name="__codelineno-104-8"></a> <span class="k">if</span> <span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">nums</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]:</span>
<a href="#__codelineno-104-9" id="__codelineno-104-9" name="__codelineno-104-9"></a> <span class="c1"># nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-104-10" id="__codelineno-104-10" name="__codelineno-104-10"></a> <span class="n">tmp</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span>
<a href="#__codelineno-104-11" id="__codelineno-104-11" name="__codelineno-104-11"></a> <span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">nums</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span>
<a href="#__codelineno-104-12" id="__codelineno-104-12" name="__codelineno-104-12"></a> <span class="n">nums</span><span class="p">[</span><span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">tmp</span>
<a href="#__codelineno-104-13" id="__codelineno-104-13" name="__codelineno-104-13"></a> <span class="n">count</span> <span class="o">+=</span> <span class="mi">3</span> <span class="c1"># 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-104-14" id="__codelineno-104-14" name="__codelineno-104-14"></a> <span class="k">return</span> <span class="n">count</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-105-1" id="__codelineno-105-1" name="__codelineno-105-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-105-2" id="__codelineno-105-2" name="__codelineno-105-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">bubbleSort</span><span class="p">(</span><span class="n">vector</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="o">&amp;</span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-105-3" id="__codelineno-105-3" name="__codelineno-105-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-105-4" id="__codelineno-105-4" name="__codelineno-105-4"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-105-5" id="__codelineno-105-5" name="__codelineno-105-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">size</span><span class="p">()</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">--</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-105-6" id="__codelineno-105-6" name="__codelineno-105-6"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-105-7" id="__codelineno-105-7" name="__codelineno-105-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-105-8" id="__codelineno-105-8" name="__codelineno-105-8"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-105-9" id="__codelineno-105-9" name="__codelineno-105-9"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-105-10" id="__codelineno-105-10" name="__codelineno-105-10"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">];</span>
<a href="#__codelineno-105-11" id="__codelineno-105-11" name="__codelineno-105-11"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">];</span>
<a href="#__codelineno-105-12" id="__codelineno-105-12" name="__codelineno-105-12"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tmp</span><span class="p">;</span>
<a href="#__codelineno-105-13" id="__codelineno-105-13" name="__codelineno-105-13"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-105-14" id="__codelineno-105-14" name="__codelineno-105-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-105-15" id="__codelineno-105-15" name="__codelineno-105-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-105-16" id="__codelineno-105-16" name="__codelineno-105-16"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-105-17" id="__codelineno-105-17" name="__codelineno-105-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-105-18" id="__codelineno-105-18" name="__codelineno-105-18"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-106-1" id="__codelineno-106-1" name="__codelineno-106-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-106-2" id="__codelineno-106-2" name="__codelineno-106-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">bubbleSort</span><span class="p">(</span><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-106-3" id="__codelineno-106-3" name="__codelineno-106-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-106-4" id="__codelineno-106-4" name="__codelineno-106-4"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-106-5" id="__codelineno-106-5" name="__codelineno-106-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="na">length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">--</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-106-6" id="__codelineno-106-6" name="__codelineno-106-6"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-106-7" id="__codelineno-106-7" name="__codelineno-106-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-106-8" id="__codelineno-106-8" name="__codelineno-106-8"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="o">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="o">]</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-106-9" id="__codelineno-106-9" name="__codelineno-106-9"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-106-10" id="__codelineno-106-10" name="__codelineno-106-10"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="o">]</span><span class="p">;</span>
<a href="#__codelineno-106-11" id="__codelineno-106-11" name="__codelineno-106-11"></a><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="o">]</span><span class="p">;</span>
<a href="#__codelineno-106-12" id="__codelineno-106-12" name="__codelineno-106-12"></a><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tmp</span><span class="p">;</span>
<a href="#__codelineno-106-13" id="__codelineno-106-13" name="__codelineno-106-13"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-106-14" id="__codelineno-106-14" name="__codelineno-106-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-106-15" id="__codelineno-106-15" name="__codelineno-106-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-106-16" id="__codelineno-106-16" name="__codelineno-106-16"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-106-17" id="__codelineno-106-17" name="__codelineno-106-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-106-18" id="__codelineno-106-18" name="__codelineno-106-18"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-107-1" id="__codelineno-107-1" name="__codelineno-107-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-107-2" id="__codelineno-107-2" name="__codelineno-107-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">BubbleSort</span><span class="p">(</span><span class="kt">int</span><span class="p">[]</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-107-3" id="__codelineno-107-3" name="__codelineno-107-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-107-4" id="__codelineno-107-4" name="__codelineno-107-4"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-107-5" id="__codelineno-107-5" name="__codelineno-107-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">Length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">--</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-107-6" id="__codelineno-107-6" name="__codelineno-107-6"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-107-7" id="__codelineno-107-7" name="__codelineno-107-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-107-8" id="__codelineno-107-8" name="__codelineno-107-8"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-107-9" id="__codelineno-107-9" name="__codelineno-107-9"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-107-10" id="__codelineno-107-10" name="__codelineno-107-10"></a><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">],</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">])</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">],</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">]);</span>
<a href="#__codelineno-107-11" id="__codelineno-107-11" name="__codelineno-107-11"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-107-12" id="__codelineno-107-12" name="__codelineno-107-12"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-107-13" id="__codelineno-107-13" name="__codelineno-107-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-107-14" id="__codelineno-107-14" name="__codelineno-107-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-107-15" id="__codelineno-107-15" name="__codelineno-107-15"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-107-16" id="__codelineno-107-16" name="__codelineno-107-16"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-108-1" id="__codelineno-108-1" name="__codelineno-108-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-108-2" id="__codelineno-108-2" name="__codelineno-108-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">bubbleSort</span><span class="p">(</span><span class="nx">nums</span><span class="w"> </span><span class="p">[]</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-108-3" id="__codelineno-108-3" name="__codelineno-108-3"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-108-4" id="__codelineno-108-4" name="__codelineno-108-4"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-108-5" id="__codelineno-108-5" name="__codelineno-108-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nb">len</span><span class="p">(</span><span class="nx">nums</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">--</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-108-6" id="__codelineno-108-6" name="__codelineno-108-6"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-108-7" id="__codelineno-108-7" name="__codelineno-108-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-108-8" id="__codelineno-108-8" name="__codelineno-108-8"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-108-9" id="__codelineno-108-9" name="__codelineno-108-9"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-108-10" id="__codelineno-108-10" name="__codelineno-108-10"></a><span class="w"> </span><span class="nx">tmp</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span>
<a href="#__codelineno-108-11" id="__codelineno-108-11" name="__codelineno-108-11"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span>
<a href="#__codelineno-108-12" id="__codelineno-108-12" name="__codelineno-108-12"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">tmp</span>
<a href="#__codelineno-108-13" id="__codelineno-108-13" name="__codelineno-108-13"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-108-14" id="__codelineno-108-14" name="__codelineno-108-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-108-15" id="__codelineno-108-15" name="__codelineno-108-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-108-16" id="__codelineno-108-16" name="__codelineno-108-16"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-108-17" id="__codelineno-108-17" name="__codelineno-108-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span>
<a href="#__codelineno-108-18" id="__codelineno-108-18" name="__codelineno-108-18"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-109-1" id="__codelineno-109-1" name="__codelineno-109-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-109-2" id="__codelineno-109-2" name="__codelineno-109-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">bubbleSort</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </span><span class="kr">inout</span><span class="w"> </span><span class="p">[</span><span class="nb">Int</span><span class="p">])</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-109-3" id="__codelineno-109-3" name="__codelineno-109-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-109-4" id="__codelineno-109-4" name="__codelineno-109-4"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-109-5" id="__codelineno-109-5" name="__codelineno-109-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="bp">indices</span><span class="p">.</span><span class="bp">dropFirst</span><span class="p">().</span><span class="n">reversed</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-109-6" id="__codelineno-109-6" name="__codelineno-109-6"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-109-7" id="__codelineno-109-7" name="__codelineno-109-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-109-8" id="__codelineno-109-8" name="__codelineno-109-8"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-109-9" id="__codelineno-109-9" name="__codelineno-109-9"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-109-10" id="__codelineno-109-10" name="__codelineno-109-10"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nv">tmp</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span>
<a href="#__codelineno-109-11" id="__codelineno-109-11" name="__codelineno-109-11"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span>
<a href="#__codelineno-109-12" id="__codelineno-109-12" name="__codelineno-109-12"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">tmp</span>
<a href="#__codelineno-109-13" id="__codelineno-109-13" name="__codelineno-109-13"></a><span class="w"> </span><span class="bp">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-109-14" id="__codelineno-109-14" name="__codelineno-109-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-109-15" id="__codelineno-109-15" name="__codelineno-109-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-109-16" id="__codelineno-109-16" name="__codelineno-109-16"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-109-17" id="__codelineno-109-17" name="__codelineno-109-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="bp">count</span>
<a href="#__codelineno-109-18" id="__codelineno-109-18" name="__codelineno-109-18"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-110-1" id="__codelineno-110-1" name="__codelineno-110-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-110-2" id="__codelineno-110-2" name="__codelineno-110-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">bubbleSort</span><span class="p">(</span><span class="nx">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-110-3" id="__codelineno-110-3" name="__codelineno-110-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-110-4" id="__codelineno-110-4" name="__codelineno-110-4"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-110-5" id="__codelineno-110-5" name="__codelineno-110-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">.</span><span class="nx">length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">--</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-110-6" id="__codelineno-110-6" name="__codelineno-110-6"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-110-7" id="__codelineno-110-7" name="__codelineno-110-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-110-8" id="__codelineno-110-8" name="__codelineno-110-8"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-110-9" id="__codelineno-110-9" name="__codelineno-110-9"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-110-10" id="__codelineno-110-10" name="__codelineno-110-10"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">];</span>
<a href="#__codelineno-110-11" id="__codelineno-110-11" name="__codelineno-110-11"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">];</span>
<a href="#__codelineno-110-12" id="__codelineno-110-12" name="__codelineno-110-12"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">tmp</span><span class="p">;</span>
<a href="#__codelineno-110-13" id="__codelineno-110-13" name="__codelineno-110-13"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mf">3</span><span class="p">;</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-110-14" id="__codelineno-110-14" name="__codelineno-110-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-110-15" id="__codelineno-110-15" name="__codelineno-110-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-110-16" id="__codelineno-110-16" name="__codelineno-110-16"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-110-17" id="__codelineno-110-17" name="__codelineno-110-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-110-18" id="__codelineno-110-18" name="__codelineno-110-18"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-111-1" id="__codelineno-111-1" name="__codelineno-111-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-111-2" id="__codelineno-111-2" name="__codelineno-111-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">bubbleSort</span><span class="p">(</span><span class="nx">nums</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[])</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-111-3" id="__codelineno-111-3" name="__codelineno-111-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-111-4" id="__codelineno-111-4" name="__codelineno-111-4"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-111-5" id="__codelineno-111-5" name="__codelineno-111-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">.</span><span class="nx">length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">--</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-111-6" id="__codelineno-111-6" name="__codelineno-111-6"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-111-7" id="__codelineno-111-7" name="__codelineno-111-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-111-8" id="__codelineno-111-8" name="__codelineno-111-8"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-111-9" id="__codelineno-111-9" name="__codelineno-111-9"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-111-10" id="__codelineno-111-10" name="__codelineno-111-10"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">];</span>
<a href="#__codelineno-111-11" id="__codelineno-111-11" name="__codelineno-111-11"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">];</span>
<a href="#__codelineno-111-12" id="__codelineno-111-12" name="__codelineno-111-12"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">tmp</span><span class="p">;</span>
<a href="#__codelineno-111-13" id="__codelineno-111-13" name="__codelineno-111-13"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mf">3</span><span class="p">;</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-111-14" id="__codelineno-111-14" name="__codelineno-111-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-111-15" id="__codelineno-111-15" name="__codelineno-111-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-111-16" id="__codelineno-111-16" name="__codelineno-111-16"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-111-17" id="__codelineno-111-17" name="__codelineno-111-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-111-18" id="__codelineno-111-18" name="__codelineno-111-18"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-112-1" id="__codelineno-112-1" name="__codelineno-112-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-112-2" id="__codelineno-112-2" name="__codelineno-112-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">bubbleSort</span><span class="p">(</span><span class="n">List</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-112-3" id="__codelineno-112-3" name="__codelineno-112-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-112-4" id="__codelineno-112-4" name="__codelineno-112-4"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-112-5" id="__codelineno-112-5" name="__codelineno-112-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">--</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-112-6" id="__codelineno-112-6" name="__codelineno-112-6"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-112-7" id="__codelineno-112-7" name="__codelineno-112-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-112-8" id="__codelineno-112-8" name="__codelineno-112-8"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-112-9" id="__codelineno-112-9" name="__codelineno-112-9"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-112-10" id="__codelineno-112-10" name="__codelineno-112-10"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">];</span>
<a href="#__codelineno-112-11" id="__codelineno-112-11" name="__codelineno-112-11"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">];</span>
<a href="#__codelineno-112-12" id="__codelineno-112-12" name="__codelineno-112-12"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tmp</span><span class="p">;</span>
<a href="#__codelineno-112-13" id="__codelineno-112-13" name="__codelineno-112-13"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="m">3</span><span class="p">;</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-112-14" id="__codelineno-112-14" name="__codelineno-112-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-112-15" id="__codelineno-112-15" name="__codelineno-112-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-112-16" id="__codelineno-112-16" name="__codelineno-112-16"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-112-17" id="__codelineno-112-17" name="__codelineno-112-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-112-18" id="__codelineno-112-18" name="__codelineno-112-18"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-113-1" id="__codelineno-113-1" name="__codelineno-113-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-113-2" id="__codelineno-113-2" name="__codelineno-113-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">bubble_sort</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </span><span class="kp">&amp;</span><span class="nc">mut</span><span class="w"> </span><span class="p">[</span><span class="kt">i32</span><span class="p">])</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-113-3" id="__codelineno-113-3" name="__codelineno-113-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-113-4" id="__codelineno-113-4" name="__codelineno-113-4"></a>
<a href="#__codelineno-113-5" id="__codelineno-113-5" name="__codelineno-113-5"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-113-6" id="__codelineno-113-6" name="__codelineno-113-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="o">..</span><span class="n">nums</span><span class="p">.</span><span class="n">len</span><span class="p">()).</span><span class="n">rev</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-113-7" id="__codelineno-113-7" name="__codelineno-113-7"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-113-8" id="__codelineno-113-8" name="__codelineno-113-8"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">i</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-113-9" id="__codelineno-113-9" name="__codelineno-113-9"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-113-10" id="__codelineno-113-10" name="__codelineno-113-10"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-113-11" id="__codelineno-113-11" name="__codelineno-113-11"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">];</span>
<a href="#__codelineno-113-12" id="__codelineno-113-12" name="__codelineno-113-12"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">];</span>
<a href="#__codelineno-113-13" id="__codelineno-113-13" name="__codelineno-113-13"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tmp</span><span class="p">;</span>
<a href="#__codelineno-113-14" id="__codelineno-113-14" name="__codelineno-113-14"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-113-15" id="__codelineno-113-15" name="__codelineno-113-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-113-16" id="__codelineno-113-16" name="__codelineno-113-16"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-113-17" id="__codelineno-113-17" name="__codelineno-113-17"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-113-18" id="__codelineno-113-18" name="__codelineno-113-18"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-113-19" id="__codelineno-113-19" name="__codelineno-113-19"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-114-1" id="__codelineno-114-1" name="__codelineno-114-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-114-2" id="__codelineno-114-2" name="__codelineno-114-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">bubbleSort</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">nums</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-114-3" id="__codelineno-114-3" name="__codelineno-114-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-114-4" id="__codelineno-114-4" name="__codelineno-114-4"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-114-5" id="__codelineno-114-5" name="__codelineno-114-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">--</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-114-6" id="__codelineno-114-6" name="__codelineno-114-6"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-114-7" id="__codelineno-114-7" name="__codelineno-114-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-114-8" id="__codelineno-114-8" name="__codelineno-114-8"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-114-9" id="__codelineno-114-9" name="__codelineno-114-9"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-114-10" id="__codelineno-114-10" name="__codelineno-114-10"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">];</span>
<a href="#__codelineno-114-11" id="__codelineno-114-11" name="__codelineno-114-11"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">];</span>
<a href="#__codelineno-114-12" id="__codelineno-114-12" name="__codelineno-114-12"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tmp</span><span class="p">;</span>
<a href="#__codelineno-114-13" id="__codelineno-114-13" name="__codelineno-114-13"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-114-14" id="__codelineno-114-14" name="__codelineno-114-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-114-15" id="__codelineno-114-15" name="__codelineno-114-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-114-16" id="__codelineno-114-16" name="__codelineno-114-16"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-114-17" id="__codelineno-114-17" name="__codelineno-114-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-114-18" id="__codelineno-114-18" name="__codelineno-114-18"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-115-1" id="__codelineno-115-1" name="__codelineno-115-1"></a><span class="cm">/* 제곱 차수(버블 정렬) */</span>
<a href="#__codelineno-115-2" id="__codelineno-115-2" name="__codelineno-115-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">bubbleSort</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </span><span class="n">IntArray</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-115-3" id="__codelineno-115-3" name="__codelineno-115-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="c1">// 카운터</span>
<a href="#__codelineno-115-4" id="__codelineno-115-4" name="__codelineno-115-4"></a><span class="w"> </span><span class="c1">// 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-115-5" id="__codelineno-115-5" name="__codelineno-115-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="na">size</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="n">downTo</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-115-6" id="__codelineno-115-6" name="__codelineno-115-6"></a><span class="w"> </span><span class="c1">// 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-115-7" id="__codelineno-115-7" name="__codelineno-115-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-115-8" id="__codelineno-115-8" name="__codelineno-115-8"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="o">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="o">]</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-115-9" id="__codelineno-115-9" name="__codelineno-115-9"></a><span class="w"> </span><span class="c1">// nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-115-10" id="__codelineno-115-10" name="__codelineno-115-10"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="o">]</span>
<a href="#__codelineno-115-11" id="__codelineno-115-11" name="__codelineno-115-11"></a><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="o">]</span>
<a href="#__codelineno-115-12" id="__codelineno-115-12" name="__codelineno-115-12"></a><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">temp</span>
<a href="#__codelineno-115-13" id="__codelineno-115-13" name="__codelineno-115-13"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="m">3</span><span class="w"> </span><span class="c1">// 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-115-14" id="__codelineno-115-14" name="__codelineno-115-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-115-15" id="__codelineno-115-15" name="__codelineno-115-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-115-16" id="__codelineno-115-16" name="__codelineno-115-16"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-115-17" id="__codelineno-115-17" name="__codelineno-115-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-115-18" id="__codelineno-115-18" name="__codelineno-115-18"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-116-1" id="__codelineno-116-1" name="__codelineno-116-1"></a><span class="c1">### 제곱 차수(버블 정렬)###</span>
<a href="#__codelineno-116-2" id="__codelineno-116-2" name="__codelineno-116-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">bubble_sort</span><span class="p">(</span><span class="n">nums</span><span class="p">)</span>
<a href="#__codelineno-116-3" id="__codelineno-116-3" name="__codelineno-116-3"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="c1"># 카운터</span>
<a href="#__codelineno-116-4" id="__codelineno-116-4" name="__codelineno-116-4"></a>
<a href="#__codelineno-116-5" id="__codelineno-116-5" name="__codelineno-116-5"></a><span class="w"> </span><span class="c1"># 바깥쪽 반복문: 정렬되지 않은 구간은 [0, i]이다</span>
<a href="#__codelineno-116-6" id="__codelineno-116-6" name="__codelineno-116-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="o">.</span><span class="n">length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">downto</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-116-7" id="__codelineno-116-7" name="__codelineno-116-7"></a><span class="w"> </span><span class="c1"># 안쪽 반복문: 정렬되지 않은 구간 [0, i]의 최댓값을 교환하여 이 구간의 맨 오른쪽으로 옮긴다</span>
<a href="#__codelineno-116-8" id="__codelineno-116-8" name="__codelineno-116-8"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">...</span><span class="n">i</span>
<a href="#__codelineno-116-9" id="__codelineno-116-9" name="__codelineno-116-9"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="o">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="o">]</span>
<a href="#__codelineno-116-10" id="__codelineno-116-10" name="__codelineno-116-10"></a><span class="w"> </span><span class="c1"># nums[j]와 nums[j + 1]을 교환한다</span>
<a href="#__codelineno-116-11" id="__codelineno-116-11" name="__codelineno-116-11"></a><span class="w"> </span><span class="n">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="o">]</span>
<a href="#__codelineno-116-12" id="__codelineno-116-12" name="__codelineno-116-12"></a><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="o">]</span>
<a href="#__codelineno-116-13" id="__codelineno-116-13" name="__codelineno-116-13"></a><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">j</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tmp</span>
<a href="#__codelineno-116-14" id="__codelineno-116-14" name="__codelineno-116-14"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="c1"># 원소 교환에는 단위 연산 3회가 포함된다</span>
<a href="#__codelineno-116-15" id="__codelineno-116-15" name="__codelineno-116-15"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-116-16" id="__codelineno-116-16" name="__codelineno-116-16"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-116-17" id="__codelineno-116-17" name="__codelineno-116-17"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-116-18" id="__codelineno-116-18" name="__codelineno-116-18"></a>
<a href="#__codelineno-116-19" id="__codelineno-116-19" name="__codelineno-116-19"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-116-20" id="__codelineno-116-20" name="__codelineno-116-20"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 549px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20bubble_sort%28nums%3A%20list%5Bint%5D%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%A0%9C%EA%B3%B1%20%EC%B0%A8%EC%88%98%28%EB%B2%84%EB%B8%94%20%EC%A0%95%EB%A0%AC%29%22%22%22%0A%20%20%20%20count%20%3D%200%20%20%23%20%EC%B9%B4%EC%9A%B4%ED%84%B0%0A%20%20%20%20%23%20%EB%B0%94%EA%B9%A5%EC%AA%BD%20%EB%B0%98%EB%B3%B5%EB%AC%B8%3A%20%EC%A0%95%EB%A0%AC%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EA%B5%AC%EA%B0%84%EC%9D%80%20%5B0,%20i%5D%EC%9D%B4%EB%8B%A4%0A%20%20%20%20for%20i%20in%20range%28len%28nums%29%20-%201,%200,%20-1%29%3A%0A%20%20%20%20%20%20%20%20%23%20%EC%95%88%EC%AA%BD%20%EB%B0%98%EB%B3%B5%EB%AC%B8%3A%20%EC%A0%95%EB%A0%AC%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EA%B5%AC%EA%B0%84%20%5B0,%20i%5D%EC%9D%98%20%EC%B5%9C%EB%8C%93%EA%B0%92%EC%9D%84%20%EA%B5%90%ED%99%98%ED%95%98%EC%97%AC%20%EC%9D%B4%20%EA%B5%AC%EA%B0%84%EC%9D%98%20%EB%A7%A8%20%EC%98%A4%EB%A5%B8%EC%AA%BD%EC%9C%BC%EB%A1%9C%20%EC%98%AE%EA%B8%B4%EB%8B%A4%0A%20%20%20%20%20%20%20%20for%20j%20in%20range%28i%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20nums%5Bj%5D%20%3E%20nums%5Bj%20%2B%201%5D%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20nums%5Bj%5D%EC%99%80%20nums%5Bj%20%2B%201%5D%EC%9D%84%20%EA%B5%90%ED%99%98%ED%95%9C%EB%8B%A4%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmp%20%3D%20nums%5Bj%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nums%5Bj%5D%20%3D%20nums%5Bj%20%2B%201%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nums%5Bj%20%2B%201%5D%20%3D%20tmp%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20count%20%2B%3D%203%20%20%23%20%EC%9B%90%EC%86%8C%20%EA%B5%90%ED%99%98%EC%97%90%EB%8A%94%20%EB%8B%A8%EC%9C%84%20%EC%97%B0%EC%82%B0%203%ED%9A%8C%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%EB%8B%A4%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20nums%20%3D%20%5Bi%20for%20i%20in%20range%28n,%200,%20-1%29%5D%20%20%23%20%5Bn,%20n-1,%20...,%202,%201%5D%0A%20%20%20%20count%20%3D%20bubble_sort%28nums%29%0A%20%20%20%20print%28%22%EC%A0%9C%EA%B3%B1%20%EC%B0%A8%EC%88%98%28%EB%B2%84%EB%B8%94%20%EC%A0%95%EB%A0%AC%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20bubble_sort%28nums%3A%20list%5Bint%5D%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%A0%9C%EA%B3%B1%20%EC%B0%A8%EC%88%98%28%EB%B2%84%EB%B8%94%20%EC%A0%95%EB%A0%AC%29%22%22%22%0A%20%20%20%20count%20%3D%200%20%20%23%20%EC%B9%B4%EC%9A%B4%ED%84%B0%0A%20%20%20%20%23%20%EB%B0%94%EA%B9%A5%EC%AA%BD%20%EB%B0%98%EB%B3%B5%EB%AC%B8%3A%20%EC%A0%95%EB%A0%AC%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EA%B5%AC%EA%B0%84%EC%9D%80%20%5B0,%20i%5D%EC%9D%B4%EB%8B%A4%0A%20%20%20%20for%20i%20in%20range%28len%28nums%29%20-%201,%200,%20-1%29%3A%0A%20%20%20%20%20%20%20%20%23%20%EC%95%88%EC%AA%BD%20%EB%B0%98%EB%B3%B5%EB%AC%B8%3A%20%EC%A0%95%EB%A0%AC%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EA%B5%AC%EA%B0%84%20%5B0,%20i%5D%EC%9D%98%20%EC%B5%9C%EB%8C%93%EA%B0%92%EC%9D%84%20%EA%B5%90%ED%99%98%ED%95%98%EC%97%AC%20%EC%9D%B4%20%EA%B5%AC%EA%B0%84%EC%9D%98%20%EB%A7%A8%20%EC%98%A4%EB%A5%B8%EC%AA%BD%EC%9C%BC%EB%A1%9C%20%EC%98%AE%EA%B8%B4%EB%8B%A4%0A%20%20%20%20%20%20%20%20for%20j%20in%20range%28i%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20nums%5Bj%5D%20%3E%20nums%5Bj%20%2B%201%5D%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20nums%5Bj%5D%EC%99%80%20nums%5Bj%20%2B%201%5D%EC%9D%84%20%EA%B5%90%ED%99%98%ED%95%9C%EB%8B%A4%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmp%20%3D%20nums%5Bj%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nums%5Bj%5D%20%3D%20nums%5Bj%20%2B%201%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nums%5Bj%20%2B%201%5D%20%3D%20tmp%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20count%20%2B%3D%203%20%20%23%20%EC%9B%90%EC%86%8C%20%EA%B5%90%ED%99%98%EC%97%90%EB%8A%94%20%EB%8B%A8%EC%9C%84%20%EC%97%B0%EC%82%B0%203%ED%9A%8C%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%EB%8B%A4%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20nums%20%3D%20%5Bi%20for%20i%20in%20range%28n,%200,%20-1%29%5D%20%20%23%20%5Bn,%20n-1,%20...,%202,%201%5D%0A%20%20%20%20count%20%3D%20bubble_sort%28nums%29%0A%20%20%20%20print%28%22%EC%A0%9C%EA%B3%B1%20%EC%B0%A8%EC%88%98%28%EB%B2%84%EB%B8%94%20%EC%A0%95%EB%A0%AC%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<h3 id="4-o2n">4.   지수 시간 <span class="arithmatex">\(O(2^n)\)</span><a class="headerlink" href="#4-o2n" title="고유 링크"></a></h3>
<p>생물학의 ‘세포 분열’은 지수적 증가의 대표적인 예다. 처음에는 세포가 <span class="arithmatex">\(1\)</span>개이고, 한 차례 분열하면 <span class="arithmatex">\(2\)</span>개, 두 차례 분열하면 <span class="arithmatex">\(4\)</span>개가 된다. 이처럼 <span class="arithmatex">\(n\)</span>차례 분열하면 세포는 <span class="arithmatex">\(2^n\)</span>개가 된다.</p>
<p>아래 그림(2-11)과 코드는 세포 분열 과정을 재현하며, 시간 복잡도는 <span class="arithmatex">\(O(2^n)\)</span>이다. 입력 <span class="arithmatex">\(n\)</span>은 분열이 진행되는 라운드 수이고, 반환값 <code>count</code>는 전체 분열 횟수라는 점에 주의하자.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="10:13"><input checked="checked" id="__tabbed_10_1" name="__tabbed_10" type="radio"/><input id="__tabbed_10_2" name="__tabbed_10" type="radio"/><input id="__tabbed_10_3" name="__tabbed_10" type="radio"/><input id="__tabbed_10_4" name="__tabbed_10" type="radio"/><input id="__tabbed_10_5" name="__tabbed_10" type="radio"/><input id="__tabbed_10_6" name="__tabbed_10" type="radio"/><input id="__tabbed_10_7" name="__tabbed_10" type="radio"/><input id="__tabbed_10_8" name="__tabbed_10" type="radio"/><input id="__tabbed_10_9" name="__tabbed_10" type="radio"/><input id="__tabbed_10_10" name="__tabbed_10" type="radio"/><input id="__tabbed_10_11" name="__tabbed_10" type="radio"/><input id="__tabbed_10_12" name="__tabbed_10" type="radio"/><input id="__tabbed_10_13" name="__tabbed_10" type="radio"/><div class="tabbed-labels"><label for="__tabbed_10_1">Python</label><label for="__tabbed_10_2">C++</label><label for="__tabbed_10_3">Java</label><label for="__tabbed_10_4">C#</label><label for="__tabbed_10_5">Go</label><label for="__tabbed_10_6">Swift</label><label for="__tabbed_10_7">JS</label><label for="__tabbed_10_8">TS</label><label for="__tabbed_10_9">Dart</label><label for="__tabbed_10_10">Rust</label><label for="__tabbed_10_11">C</label><label for="__tabbed_10_12">Kotlin</label><label for="__tabbed_10_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-117-1" id="__codelineno-117-1" name="__codelineno-117-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">exponential</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-117-2" id="__codelineno-117-2" name="__codelineno-117-2"></a><span class="w"> </span><span class="sd">"""지수 차수(반복문 구현)"""</span>
<a href="#__codelineno-117-3" id="__codelineno-117-3" name="__codelineno-117-3"></a> <span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
<a href="#__codelineno-117-4" id="__codelineno-117-4" name="__codelineno-117-4"></a> <span class="n">base</span> <span class="o">=</span> <span class="mi">1</span>
<a href="#__codelineno-117-5" id="__codelineno-117-5" name="__codelineno-117-5"></a> <span class="c1"># 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-117-6" id="__codelineno-117-6" name="__codelineno-117-6"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
<a href="#__codelineno-117-7" id="__codelineno-117-7" name="__codelineno-117-7"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">base</span><span class="p">):</span>
<a href="#__codelineno-117-8" id="__codelineno-117-8" name="__codelineno-117-8"></a> <span class="n">count</span> <span class="o">+=</span> <span class="mi">1</span>
<a href="#__codelineno-117-9" id="__codelineno-117-9" name="__codelineno-117-9"></a> <span class="n">base</span> <span class="o">*=</span> <span class="mi">2</span>
<a href="#__codelineno-117-10" id="__codelineno-117-10" name="__codelineno-117-10"></a> <span class="c1"># count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-117-11" id="__codelineno-117-11" name="__codelineno-117-11"></a> <span class="k">return</span> <span class="n">count</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-118-1" id="__codelineno-118-1" name="__codelineno-118-1"></a><span class="cm">/* 지수 차수(반복문 구현) */</span>
<a href="#__codelineno-118-2" id="__codelineno-118-2" name="__codelineno-118-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">exponential</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-118-3" id="__codelineno-118-3" name="__codelineno-118-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-118-4" id="__codelineno-118-4" name="__codelineno-118-4"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-118-5" id="__codelineno-118-5" name="__codelineno-118-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-118-6" id="__codelineno-118-6" name="__codelineno-118-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">base</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-118-7" id="__codelineno-118-7" name="__codelineno-118-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-118-8" id="__codelineno-118-8" name="__codelineno-118-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-118-9" id="__codelineno-118-9" name="__codelineno-118-9"></a><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a href="#__codelineno-118-10" id="__codelineno-118-10" name="__codelineno-118-10"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-118-11" id="__codelineno-118-11" name="__codelineno-118-11"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-118-12" id="__codelineno-118-12" name="__codelineno-118-12"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-118-13" id="__codelineno-118-13" name="__codelineno-118-13"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-119-1" id="__codelineno-119-1" name="__codelineno-119-1"></a><span class="cm">/* 지수 차수(반복문 구현) */</span>
<a href="#__codelineno-119-2" id="__codelineno-119-2" name="__codelineno-119-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">exponential</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-119-3" id="__codelineno-119-3" name="__codelineno-119-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-119-4" id="__codelineno-119-4" name="__codelineno-119-4"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-119-5" id="__codelineno-119-5" name="__codelineno-119-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-119-6" id="__codelineno-119-6" name="__codelineno-119-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">base</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-119-7" id="__codelineno-119-7" name="__codelineno-119-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-119-8" id="__codelineno-119-8" name="__codelineno-119-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-119-9" id="__codelineno-119-9" name="__codelineno-119-9"></a><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a href="#__codelineno-119-10" id="__codelineno-119-10" name="__codelineno-119-10"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-119-11" id="__codelineno-119-11" name="__codelineno-119-11"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-119-12" id="__codelineno-119-12" name="__codelineno-119-12"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-119-13" id="__codelineno-119-13" name="__codelineno-119-13"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-120-1" id="__codelineno-120-1" name="__codelineno-120-1"></a><span class="cm">/* 지수 차수(반복문 구현) */</span>
<a href="#__codelineno-120-2" id="__codelineno-120-2" name="__codelineno-120-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">Exponential</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-120-3" id="__codelineno-120-3" name="__codelineno-120-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">bas</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-120-4" id="__codelineno-120-4" name="__codelineno-120-4"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-120-5" id="__codelineno-120-5" name="__codelineno-120-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-120-6" id="__codelineno-120-6" name="__codelineno-120-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">bas</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-120-7" id="__codelineno-120-7" name="__codelineno-120-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-120-8" id="__codelineno-120-8" name="__codelineno-120-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-120-9" id="__codelineno-120-9" name="__codelineno-120-9"></a><span class="w"> </span><span class="n">bas</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a href="#__codelineno-120-10" id="__codelineno-120-10" name="__codelineno-120-10"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-120-11" id="__codelineno-120-11" name="__codelineno-120-11"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-120-12" id="__codelineno-120-12" name="__codelineno-120-12"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-120-13" id="__codelineno-120-13" name="__codelineno-120-13"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-121-1" id="__codelineno-121-1" name="__codelineno-121-1"></a><span class="cm">/* 지수 차수(반복문 구현)*/</span>
<a href="#__codelineno-121-2" id="__codelineno-121-2" name="__codelineno-121-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">exponential</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-121-3" id="__codelineno-121-3" name="__codelineno-121-3"></a><span class="w"> </span><span class="nx">count</span><span class="p">,</span><span class="w"> </span><span class="nx">base</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-121-4" id="__codelineno-121-4" name="__codelineno-121-4"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-121-5" id="__codelineno-121-5" name="__codelineno-121-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-121-6" id="__codelineno-121-6" name="__codelineno-121-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">base</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-121-7" id="__codelineno-121-7" name="__codelineno-121-7"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span>
<a href="#__codelineno-121-8" id="__codelineno-121-8" name="__codelineno-121-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-121-9" id="__codelineno-121-9" name="__codelineno-121-9"></a><span class="w"> </span><span class="nx">base</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span>
<a href="#__codelineno-121-10" id="__codelineno-121-10" name="__codelineno-121-10"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-121-11" id="__codelineno-121-11" name="__codelineno-121-11"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-121-12" id="__codelineno-121-12" name="__codelineno-121-12"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span>
<a href="#__codelineno-121-13" id="__codelineno-121-13" name="__codelineno-121-13"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-122-1" id="__codelineno-122-1" name="__codelineno-122-1"></a><span class="cm">/* 지수 차수(반복문 구현) */</span>
<a href="#__codelineno-122-2" id="__codelineno-122-2" name="__codelineno-122-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">exponential</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-122-3" id="__codelineno-122-3" name="__codelineno-122-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-122-4" id="__codelineno-122-4" name="__codelineno-122-4"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">base</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-122-5" id="__codelineno-122-5" name="__codelineno-122-5"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-122-6" id="__codelineno-122-6" name="__codelineno-122-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-122-7" id="__codelineno-122-7" name="__codelineno-122-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-122-8" id="__codelineno-122-8" name="__codelineno-122-8"></a><span class="w"> </span><span class="bp">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-122-9" id="__codelineno-122-9" name="__codelineno-122-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-122-10" id="__codelineno-122-10" name="__codelineno-122-10"></a><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span>
<a href="#__codelineno-122-11" id="__codelineno-122-11" name="__codelineno-122-11"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-122-12" id="__codelineno-122-12" name="__codelineno-122-12"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-122-13" id="__codelineno-122-13" name="__codelineno-122-13"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="bp">count</span>
<a href="#__codelineno-122-14" id="__codelineno-122-14" name="__codelineno-122-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-123-1" id="__codelineno-123-1" name="__codelineno-123-1"></a><span class="cm">/* 지수 차수(반복문 구현) */</span>
<a href="#__codelineno-123-2" id="__codelineno-123-2" name="__codelineno-123-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">exponential</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-123-3" id="__codelineno-123-3" name="__codelineno-123-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">,</span>
<a href="#__codelineno-123-4" id="__codelineno-123-4" name="__codelineno-123-4"></a><span class="w"> </span><span class="nx">base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-123-5" id="__codelineno-123-5" name="__codelineno-123-5"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-123-6" id="__codelineno-123-6" name="__codelineno-123-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-123-7" id="__codelineno-123-7" name="__codelineno-123-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">base</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-123-8" id="__codelineno-123-8" name="__codelineno-123-8"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-123-9" id="__codelineno-123-9" name="__codelineno-123-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-123-10" id="__codelineno-123-10" name="__codelineno-123-10"></a><span class="w"> </span><span class="nx">base</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span>
<a href="#__codelineno-123-11" id="__codelineno-123-11" name="__codelineno-123-11"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-123-12" id="__codelineno-123-12" name="__codelineno-123-12"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-123-13" id="__codelineno-123-13" name="__codelineno-123-13"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-123-14" id="__codelineno-123-14" name="__codelineno-123-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-124-1" id="__codelineno-124-1" name="__codelineno-124-1"></a><span class="cm">/* 지수 차수(반복문 구현) */</span>
<a href="#__codelineno-124-2" id="__codelineno-124-2" name="__codelineno-124-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">exponential</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-124-3" id="__codelineno-124-3" name="__codelineno-124-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">,</span>
<a href="#__codelineno-124-4" id="__codelineno-124-4" name="__codelineno-124-4"></a><span class="w"> </span><span class="nx">base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-124-5" id="__codelineno-124-5" name="__codelineno-124-5"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-124-6" id="__codelineno-124-6" name="__codelineno-124-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-124-7" id="__codelineno-124-7" name="__codelineno-124-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">base</span><span class="p">;</span><span class="w"> </span><span class="nx">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-124-8" id="__codelineno-124-8" name="__codelineno-124-8"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-124-9" id="__codelineno-124-9" name="__codelineno-124-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-124-10" id="__codelineno-124-10" name="__codelineno-124-10"></a><span class="w"> </span><span class="nx">base</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span>
<a href="#__codelineno-124-11" id="__codelineno-124-11" name="__codelineno-124-11"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-124-12" id="__codelineno-124-12" name="__codelineno-124-12"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-124-13" id="__codelineno-124-13" name="__codelineno-124-13"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-124-14" id="__codelineno-124-14" name="__codelineno-124-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-125-1" id="__codelineno-125-1" name="__codelineno-125-1"></a><span class="cm">/* 지수 차수(반복문 구현) */</span>
<a href="#__codelineno-125-2" id="__codelineno-125-2" name="__codelineno-125-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">exponential</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-125-3" id="__codelineno-125-3" name="__codelineno-125-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span><span class="p">;</span>
<a href="#__codelineno-125-4" id="__codelineno-125-4" name="__codelineno-125-4"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-125-5" id="__codelineno-125-5" name="__codelineno-125-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-125-6" id="__codelineno-125-6" name="__codelineno-125-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">base</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-125-7" id="__codelineno-125-7" name="__codelineno-125-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-125-8" id="__codelineno-125-8" name="__codelineno-125-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-125-9" id="__codelineno-125-9" name="__codelineno-125-9"></a><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="m">2</span><span class="p">;</span>
<a href="#__codelineno-125-10" id="__codelineno-125-10" name="__codelineno-125-10"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-125-11" id="__codelineno-125-11" name="__codelineno-125-11"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-125-12" id="__codelineno-125-12" name="__codelineno-125-12"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-125-13" id="__codelineno-125-13" name="__codelineno-125-13"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-126-1" id="__codelineno-126-1" name="__codelineno-126-1"></a><span class="cm">/* 지수 차수(반복문 구현) */</span>
<a href="#__codelineno-126-2" id="__codelineno-126-2" name="__codelineno-126-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">exponential</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-126-3" id="__codelineno-126-3" name="__codelineno-126-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-126-4" id="__codelineno-126-4" name="__codelineno-126-4"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-126-5" id="__codelineno-126-5" name="__codelineno-126-5"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-126-6" id="__codelineno-126-6" name="__codelineno-126-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-126-7" id="__codelineno-126-7" name="__codelineno-126-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">base</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-126-8" id="__codelineno-126-8" name="__codelineno-126-8"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-126-9" id="__codelineno-126-9" name="__codelineno-126-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-126-10" id="__codelineno-126-10" name="__codelineno-126-10"></a><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a href="#__codelineno-126-11" id="__codelineno-126-11" name="__codelineno-126-11"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-126-12" id="__codelineno-126-12" name="__codelineno-126-12"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-126-13" id="__codelineno-126-13" name="__codelineno-126-13"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-126-14" id="__codelineno-126-14" name="__codelineno-126-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-127-1" id="__codelineno-127-1" name="__codelineno-127-1"></a><span class="cm">/* 지수 차수(반복문 구현) */</span>
<a href="#__codelineno-127-2" id="__codelineno-127-2" name="__codelineno-127-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">exponential</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-127-3" id="__codelineno-127-3" name="__codelineno-127-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-127-4" id="__codelineno-127-4" name="__codelineno-127-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">bas</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-127-5" id="__codelineno-127-5" name="__codelineno-127-5"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-127-6" id="__codelineno-127-6" name="__codelineno-127-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-127-7" id="__codelineno-127-7" name="__codelineno-127-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">bas</span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-127-8" id="__codelineno-127-8" name="__codelineno-127-8"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-127-9" id="__codelineno-127-9" name="__codelineno-127-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-127-10" id="__codelineno-127-10" name="__codelineno-127-10"></a><span class="w"> </span><span class="n">bas</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a href="#__codelineno-127-11" id="__codelineno-127-11" name="__codelineno-127-11"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-127-12" id="__codelineno-127-12" name="__codelineno-127-12"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-127-13" id="__codelineno-127-13" name="__codelineno-127-13"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-127-14" id="__codelineno-127-14" name="__codelineno-127-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-128-1" id="__codelineno-128-1" name="__codelineno-128-1"></a><span class="cm">/* 지수 차수(반복문 구현) */</span>
<a href="#__codelineno-128-2" id="__codelineno-128-2" name="__codelineno-128-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">exponential</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-128-3" id="__codelineno-128-3" name="__codelineno-128-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span>
<a href="#__codelineno-128-4" id="__codelineno-128-4" name="__codelineno-128-4"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>
<a href="#__codelineno-128-5" id="__codelineno-128-5" name="__codelineno-128-5"></a><span class="w"> </span><span class="c1">// 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-128-6" id="__codelineno-128-6" name="__codelineno-128-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-128-7" id="__codelineno-128-7" name="__codelineno-128-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">base</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-128-8" id="__codelineno-128-8" name="__codelineno-128-8"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span>
<a href="#__codelineno-128-9" id="__codelineno-128-9" name="__codelineno-128-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-128-10" id="__codelineno-128-10" name="__codelineno-128-10"></a><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="m">2</span>
<a href="#__codelineno-128-11" id="__codelineno-128-11" name="__codelineno-128-11"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-128-12" id="__codelineno-128-12" name="__codelineno-128-12"></a><span class="w"> </span><span class="c1">// count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-128-13" id="__codelineno-128-13" name="__codelineno-128-13"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-128-14" id="__codelineno-128-14" name="__codelineno-128-14"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-129-1" id="__codelineno-129-1" name="__codelineno-129-1"></a><span class="c1">### 지수 차수(반복문 구현)###</span>
<a href="#__codelineno-129-2" id="__codelineno-129-2" name="__codelineno-129-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">exponential</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-129-3" id="__codelineno-129-3" name="__codelineno-129-3"></a><span class="w"> </span><span class="n">count</span><span class="p">,</span><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-129-4" id="__codelineno-129-4" name="__codelineno-129-4"></a>
<a href="#__codelineno-129-5" id="__codelineno-129-5" name="__codelineno-129-5"></a><span class="w"> </span><span class="c1"># 세포가 매번 둘로 나뉘어 수열 1, 2, 4, 8, ..., 2^(n-1)을 이룬다</span>
<a href="#__codelineno-129-6" id="__codelineno-129-6" name="__codelineno-129-6"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="n">n</span><span class="p">)</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="k">do</span>
<a href="#__codelineno-129-7" id="__codelineno-129-7" name="__codelineno-129-7"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="n">base</span><span class="p">)</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-129-8" id="__codelineno-129-8" name="__codelineno-129-8"></a><span class="w"> </span><span class="n">base</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span>
<a href="#__codelineno-129-9" id="__codelineno-129-9" name="__codelineno-129-9"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-129-10" id="__codelineno-129-10" name="__codelineno-129-10"></a>
<a href="#__codelineno-129-11" id="__codelineno-129-11" name="__codelineno-129-11"></a><span class="w"> </span><span class="c1"># count = 1 + 2 + 4 + 8 + .. + 2^(n-1) = 2^n - 1</span>
<a href="#__codelineno-129-12" id="__codelineno-129-12" name="__codelineno-129-12"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-129-13" id="__codelineno-129-13" name="__codelineno-129-13"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 531px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20exponential%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%A7%80%EC%88%98%20%EC%B0%A8%EC%88%98%28%EB%B0%98%EB%B3%B5%EB%AC%B8%20%EA%B5%AC%ED%98%84%29%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20base%20%3D%201%0A%20%20%20%20%23%20%EC%84%B8%ED%8F%AC%EA%B0%80%20%EB%A7%A4%EB%B2%88%20%EB%91%98%EB%A1%9C%20%EB%82%98%EB%89%98%EC%96%B4%20%EC%88%98%EC%97%B4%201,%202,%204,%208,%20...,%202%5E%28n-1%29%EC%9D%84%20%EC%9D%B4%EB%A3%AC%EB%8B%A4%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20for%20_%20in%20range%28base%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20%20%20%20%20base%20%2A%3D%202%0A%20%20%20%20%23%20count%20%3D%201%20%2B%202%20%2B%204%20%2B%208%20%2B%20..%20%2B%202%5E%28n-1%29%20%3D%202%5En%20-%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20exponential%28n%29%0A%20%20%20%20print%28%22%EC%A7%80%EC%88%98%20%EC%B0%A8%EC%88%98%28%EB%B0%98%EB%B3%B5%EB%AC%B8%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20exponential%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%A7%80%EC%88%98%20%EC%B0%A8%EC%88%98%28%EB%B0%98%EB%B3%B5%EB%AC%B8%20%EA%B5%AC%ED%98%84%29%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20base%20%3D%201%0A%20%20%20%20%23%20%EC%84%B8%ED%8F%AC%EA%B0%80%20%EB%A7%A4%EB%B2%88%20%EB%91%98%EB%A1%9C%20%EB%82%98%EB%89%98%EC%96%B4%20%EC%88%98%EC%97%B4%201,%202,%204,%208,%20...,%202%5E%28n-1%29%EC%9D%84%20%EC%9D%B4%EB%A3%AC%EB%8B%A4%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20for%20_%20in%20range%28base%29%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20%20%20%20%20base%20%2A%3D%202%0A%20%20%20%20%23%20count%20%3D%201%20%2B%202%20%2B%204%20%2B%208%20%2B%20..%20%2B%202%5E%28n-1%29%20%3D%202%5En%20-%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20exponential%28n%29%0A%20%20%20%20print%28%22%EC%A7%80%EC%88%98%20%EC%B0%A8%EC%88%98%28%EB%B0%98%EB%B3%B5%EB%AC%B8%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<p><ha-svg-figure class="animation-figure" data-book-key="ko/chapter_computational_complexity/time_complexity.assets/time_complexity_exponential.png" data-dark-src="/assets/figure-svg/figures/fe77613589841f33aeb0c096.json" data-src="/assets/figure-svg/figures/b094bb8dd6e852ba7b59e95a.json" style=";--figure-ratio:960.0/540.0"><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_exponential.svg" data-theme="light" tabindex="-1" type="image/svg+xml">지수 시간 복잡도</object><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_exponential.dark.svg" data-theme="dark" tabindex="-1" type="image/svg+xml">지수 시간 복잡도</object></ha-svg-figure></p>
<p align="center"> 그림 2-11   지수 시간 복잡도 </p>
<p>실제 알고리즘에서 지수 시간은 재귀 함수에 자주 나타난다. 예를 들어 다음 코드는 재귀적으로 둘로 나뉘며, <span class="arithmatex">\(n\)</span>번 나뉜 뒤 멈춘다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="11:13"><input checked="checked" id="__tabbed_11_1" name="__tabbed_11" type="radio"/><input id="__tabbed_11_2" name="__tabbed_11" type="radio"/><input id="__tabbed_11_3" name="__tabbed_11" type="radio"/><input id="__tabbed_11_4" name="__tabbed_11" type="radio"/><input id="__tabbed_11_5" name="__tabbed_11" type="radio"/><input id="__tabbed_11_6" name="__tabbed_11" type="radio"/><input id="__tabbed_11_7" name="__tabbed_11" type="radio"/><input id="__tabbed_11_8" name="__tabbed_11" type="radio"/><input id="__tabbed_11_9" name="__tabbed_11" type="radio"/><input id="__tabbed_11_10" name="__tabbed_11" type="radio"/><input id="__tabbed_11_11" name="__tabbed_11" type="radio"/><input id="__tabbed_11_12" name="__tabbed_11" type="radio"/><input id="__tabbed_11_13" name="__tabbed_11" type="radio"/><div class="tabbed-labels"><label for="__tabbed_11_1">Python</label><label for="__tabbed_11_2">C++</label><label for="__tabbed_11_3">Java</label><label for="__tabbed_11_4">C#</label><label for="__tabbed_11_5">Go</label><label for="__tabbed_11_6">Swift</label><label for="__tabbed_11_7">JS</label><label for="__tabbed_11_8">TS</label><label for="__tabbed_11_9">Dart</label><label for="__tabbed_11_10">Rust</label><label for="__tabbed_11_11">C</label><label for="__tabbed_11_12">Kotlin</label><label for="__tabbed_11_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-130-1" id="__codelineno-130-1" name="__codelineno-130-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">exp_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-130-2" id="__codelineno-130-2" name="__codelineno-130-2"></a><span class="w"> </span><span class="sd">"""지수 차수(재귀 구현)"""</span>
<a href="#__codelineno-130-3" id="__codelineno-130-3" name="__codelineno-130-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<a href="#__codelineno-130-4" id="__codelineno-130-4" name="__codelineno-130-4"></a> <span class="k">return</span> <span class="mi">1</span>
<a href="#__codelineno-130-5" id="__codelineno-130-5" name="__codelineno-130-5"></a> <span class="k">return</span> <span class="n">exp_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="n">exp_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-131-1" id="__codelineno-131-1" name="__codelineno-131-1"></a><span class="cm">/* 지수 차수(재귀 구현) */</span>
<a href="#__codelineno-131-2" id="__codelineno-131-2" name="__codelineno-131-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">expRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-131-3" id="__codelineno-131-3" name="__codelineno-131-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-131-4" id="__codelineno-131-4" name="__codelineno-131-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-131-5" id="__codelineno-131-5" name="__codelineno-131-5"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-131-6" id="__codelineno-131-6" name="__codelineno-131-6"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-132-1" id="__codelineno-132-1" name="__codelineno-132-1"></a><span class="cm">/* 지수 차수(재귀 구현) */</span>
<a href="#__codelineno-132-2" id="__codelineno-132-2" name="__codelineno-132-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">expRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-132-3" id="__codelineno-132-3" name="__codelineno-132-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-132-4" id="__codelineno-132-4" name="__codelineno-132-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-132-5" id="__codelineno-132-5" name="__codelineno-132-5"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-132-6" id="__codelineno-132-6" name="__codelineno-132-6"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-133-1" id="__codelineno-133-1" name="__codelineno-133-1"></a><span class="cm">/* 지수 차수(재귀 구현) */</span>
<a href="#__codelineno-133-2" id="__codelineno-133-2" name="__codelineno-133-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">ExpRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-133-3" id="__codelineno-133-3" name="__codelineno-133-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-133-4" id="__codelineno-133-4" name="__codelineno-133-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nf">ExpRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">ExpRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-133-5" id="__codelineno-133-5" name="__codelineno-133-5"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-134-1" id="__codelineno-134-1" name="__codelineno-134-1"></a><span class="cm">/* 지수 차수(재귀 구현)*/</span>
<a href="#__codelineno-134-2" id="__codelineno-134-2" name="__codelineno-134-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">expRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-134-3" id="__codelineno-134-3" name="__codelineno-134-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-134-4" id="__codelineno-134-4" name="__codelineno-134-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-134-5" id="__codelineno-134-5" name="__codelineno-134-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-134-6" id="__codelineno-134-6" name="__codelineno-134-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">expRecur</span><span class="p">(</span><span class="nx">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">expRecur</span><span class="p">(</span><span class="nx">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-134-7" id="__codelineno-134-7" name="__codelineno-134-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-135-1" id="__codelineno-135-1" name="__codelineno-135-1"></a><span class="cm">/* 지수 차수(재귀 구현) */</span>
<a href="#__codelineno-135-2" id="__codelineno-135-2" name="__codelineno-135-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">expRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-135-3" id="__codelineno-135-3" name="__codelineno-135-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-135-4" id="__codelineno-135-4" name="__codelineno-135-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-135-5" id="__codelineno-135-5" name="__codelineno-135-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-135-6" id="__codelineno-135-6" name="__codelineno-135-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-135-7" id="__codelineno-135-7" name="__codelineno-135-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-136-1" id="__codelineno-136-1" name="__codelineno-136-1"></a><span class="cm">/* 지수 차수(재귀 구현) */</span>
<a href="#__codelineno-136-2" id="__codelineno-136-2" name="__codelineno-136-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">expRecur</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-136-3" id="__codelineno-136-3" name="__codelineno-136-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-136-4" id="__codelineno-136-4" name="__codelineno-136-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">expRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">expRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-136-5" id="__codelineno-136-5" name="__codelineno-136-5"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-137-1" id="__codelineno-137-1" name="__codelineno-137-1"></a><span class="cm">/* 지수 차수(재귀 구현) */</span>
<a href="#__codelineno-137-2" id="__codelineno-137-2" name="__codelineno-137-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">expRecur</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-137-3" id="__codelineno-137-3" name="__codelineno-137-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-137-4" id="__codelineno-137-4" name="__codelineno-137-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">expRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">expRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-137-5" id="__codelineno-137-5" name="__codelineno-137-5"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-138-1" id="__codelineno-138-1" name="__codelineno-138-1"></a><span class="cm">/* 지수 차수(재귀 구현) */</span>
<a href="#__codelineno-138-2" id="__codelineno-138-2" name="__codelineno-138-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-138-3" id="__codelineno-138-3" name="__codelineno-138-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">1</span><span class="p">;</span>
<a href="#__codelineno-138-4" id="__codelineno-138-4" name="__codelineno-138-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span>
<a href="#__codelineno-138-5" id="__codelineno-138-5" name="__codelineno-138-5"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-139-1" id="__codelineno-139-1" name="__codelineno-139-1"></a><span class="cm">/* 지수 차수(재귀 구현) */</span>
<a href="#__codelineno-139-2" id="__codelineno-139-2" name="__codelineno-139-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">exp_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-139-3" id="__codelineno-139-3" name="__codelineno-139-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-139-4" id="__codelineno-139-4" name="__codelineno-139-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-139-5" id="__codelineno-139-5" name="__codelineno-139-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-139-6" id="__codelineno-139-6" name="__codelineno-139-6"></a><span class="w"> </span><span class="n">exp_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">exp_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-139-7" id="__codelineno-139-7" name="__codelineno-139-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-140-1" id="__codelineno-140-1" name="__codelineno-140-1"></a><span class="cm">/* 지수 차수(재귀 구현) */</span>
<a href="#__codelineno-140-2" id="__codelineno-140-2" name="__codelineno-140-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">expRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-140-3" id="__codelineno-140-3" name="__codelineno-140-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-140-4" id="__codelineno-140-4" name="__codelineno-140-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-140-5" id="__codelineno-140-5" name="__codelineno-140-5"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-140-6" id="__codelineno-140-6" name="__codelineno-140-6"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-141-1" id="__codelineno-141-1" name="__codelineno-141-1"></a><span class="cm">/* 지수 차수(재귀 구현) */</span>
<a href="#__codelineno-141-2" id="__codelineno-141-2" name="__codelineno-141-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">expRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-141-3" id="__codelineno-141-3" name="__codelineno-141-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-141-4" id="__codelineno-141-4" name="__codelineno-141-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">1</span>
<a href="#__codelineno-141-5" id="__codelineno-141-5" name="__codelineno-141-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-141-6" id="__codelineno-141-6" name="__codelineno-141-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">expRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span>
<a href="#__codelineno-141-7" id="__codelineno-141-7" name="__codelineno-141-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-142-1" id="__codelineno-142-1" name="__codelineno-142-1"></a><span class="c1">### 지수 차수(재귀 구현)###</span>
<a href="#__codelineno-142-2" id="__codelineno-142-2" name="__codelineno-142-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">exp_recur</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-142-3" id="__codelineno-142-3" name="__codelineno-142-3"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-142-4" id="__codelineno-142-4" name="__codelineno-142-4"></a><span class="w"> </span><span class="n">exp_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">exp_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-142-5" id="__codelineno-142-5" name="__codelineno-142-5"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 423px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20exp_recur%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%A7%80%EC%88%98%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%22%22%22%0A%20%20%20%20if%20n%20%3D%3D%201%3A%0A%20%20%20%20%20%20%20%20return%201%0A%20%20%20%20return%20exp_recur%28n%20-%201%29%20%2B%20exp_recur%28n%20-%201%29%20%2B%201%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%207%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20exp_recur%28n%29%0A%20%20%20%20print%28%22%EC%A7%80%EC%88%98%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20exp_recur%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%A7%80%EC%88%98%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%22%22%22%0A%20%20%20%20if%20n%20%3D%3D%201%3A%0A%20%20%20%20%20%20%20%20return%201%0A%20%20%20%20return%20exp_recur%28n%20-%201%29%20%2B%20exp_recur%28n%20-%201%29%20%2B%201%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%207%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20exp_recur%28n%29%0A%20%20%20%20print%28%22%EC%A7%80%EC%88%98%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<p>지수 시간은 매우 빠르게 증가하며 완전 열거(완전 탐색, 백트래킹 등)에 흔히 나타난다. 데이터가 많은 문제에서는 지수 시간을 감당하기 어려우므로, 보통 동적 계획법이나 탐욕 알고리즘 등으로 해결해야 한다.</p>
<h3 id="5-olog-n">5.   로그 시간 <span class="arithmatex">\(O(\log n)\)</span><a class="headerlink" href="#5-olog-n" title="고유 링크"></a></h3>
<p>지수 시간과 반대로 로그 시간은 ‘매번 절반으로 줄어드는’ 상황을 나타낸다. 입력 데이터 크기가 <span class="arithmatex">\(n\)</span>이고 매번 절반으로 줄어들므로, 반복 횟수는 <span class="arithmatex">\(2^n\)</span>의 역함수인 <span class="arithmatex">\(\log_2 n\)</span>이다.</p>
<p>아래 그림(2-12)과 코드는 ‘매번 절반으로 줄어드는’ 과정을 재현한다. 시간 복잡도는 <span class="arithmatex">\(O(\log_2 n)\)</span>이며, 줄여서 <span class="arithmatex">\(O(\log n)\)</span>으로 쓴다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="12:13"><input checked="checked" id="__tabbed_12_1" name="__tabbed_12" type="radio"/><input id="__tabbed_12_2" name="__tabbed_12" type="radio"/><input id="__tabbed_12_3" name="__tabbed_12" type="radio"/><input id="__tabbed_12_4" name="__tabbed_12" type="radio"/><input id="__tabbed_12_5" name="__tabbed_12" type="radio"/><input id="__tabbed_12_6" name="__tabbed_12" type="radio"/><input id="__tabbed_12_7" name="__tabbed_12" type="radio"/><input id="__tabbed_12_8" name="__tabbed_12" type="radio"/><input id="__tabbed_12_9" name="__tabbed_12" type="radio"/><input id="__tabbed_12_10" name="__tabbed_12" type="radio"/><input id="__tabbed_12_11" name="__tabbed_12" type="radio"/><input id="__tabbed_12_12" name="__tabbed_12" type="radio"/><input id="__tabbed_12_13" name="__tabbed_12" type="radio"/><div class="tabbed-labels"><label for="__tabbed_12_1">Python</label><label for="__tabbed_12_2">C++</label><label for="__tabbed_12_3">Java</label><label for="__tabbed_12_4">C#</label><label for="__tabbed_12_5">Go</label><label for="__tabbed_12_6">Swift</label><label for="__tabbed_12_7">JS</label><label for="__tabbed_12_8">TS</label><label for="__tabbed_12_9">Dart</label><label for="__tabbed_12_10">Rust</label><label for="__tabbed_12_11">C</label><label for="__tabbed_12_12">Kotlin</label><label for="__tabbed_12_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-143-1" id="__codelineno-143-1" name="__codelineno-143-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">logarithmic</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-143-2" id="__codelineno-143-2" name="__codelineno-143-2"></a><span class="w"> </span><span class="sd">"""로그 차수(반복문 구현)"""</span>
<a href="#__codelineno-143-3" id="__codelineno-143-3" name="__codelineno-143-3"></a> <span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
<a href="#__codelineno-143-4" id="__codelineno-143-4" name="__codelineno-143-4"></a> <span class="k">while</span> <span class="n">n</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
<a href="#__codelineno-143-5" id="__codelineno-143-5" name="__codelineno-143-5"></a> <span class="n">n</span> <span class="o">=</span> <span class="n">n</span> <span class="o">/</span> <span class="mi">2</span>
<a href="#__codelineno-143-6" id="__codelineno-143-6" name="__codelineno-143-6"></a> <span class="n">count</span> <span class="o">+=</span> <span class="mi">1</span>
<a href="#__codelineno-143-7" id="__codelineno-143-7" name="__codelineno-143-7"></a> <span class="k">return</span> <span class="n">count</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-144-1" id="__codelineno-144-1" name="__codelineno-144-1"></a><span class="cm">/* 로그 차수(반복문 구현) */</span>
<a href="#__codelineno-144-2" id="__codelineno-144-2" name="__codelineno-144-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">logarithmic</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-144-3" id="__codelineno-144-3" name="__codelineno-144-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-144-4" id="__codelineno-144-4" name="__codelineno-144-4"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-144-5" id="__codelineno-144-5" name="__codelineno-144-5"></a><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a href="#__codelineno-144-6" id="__codelineno-144-6" name="__codelineno-144-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-144-7" id="__codelineno-144-7" name="__codelineno-144-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-144-8" id="__codelineno-144-8" name="__codelineno-144-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-144-9" id="__codelineno-144-9" name="__codelineno-144-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-145-1" id="__codelineno-145-1" name="__codelineno-145-1"></a><span class="cm">/* 로그 차수(반복문 구현) */</span>
<a href="#__codelineno-145-2" id="__codelineno-145-2" name="__codelineno-145-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">logarithmic</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-145-3" id="__codelineno-145-3" name="__codelineno-145-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-145-4" id="__codelineno-145-4" name="__codelineno-145-4"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-145-5" id="__codelineno-145-5" name="__codelineno-145-5"></a><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a href="#__codelineno-145-6" id="__codelineno-145-6" name="__codelineno-145-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-145-7" id="__codelineno-145-7" name="__codelineno-145-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-145-8" id="__codelineno-145-8" name="__codelineno-145-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-145-9" id="__codelineno-145-9" name="__codelineno-145-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-146-1" id="__codelineno-146-1" name="__codelineno-146-1"></a><span class="cm">/* 로그 차수(반복문 구현) */</span>
<a href="#__codelineno-146-2" id="__codelineno-146-2" name="__codelineno-146-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">Logarithmic</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-146-3" id="__codelineno-146-3" name="__codelineno-146-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-146-4" id="__codelineno-146-4" name="__codelineno-146-4"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-146-5" id="__codelineno-146-5" name="__codelineno-146-5"></a><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a href="#__codelineno-146-6" id="__codelineno-146-6" name="__codelineno-146-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-146-7" id="__codelineno-146-7" name="__codelineno-146-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-146-8" id="__codelineno-146-8" name="__codelineno-146-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-146-9" id="__codelineno-146-9" name="__codelineno-146-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-147-1" id="__codelineno-147-1" name="__codelineno-147-1"></a><span class="cm">/* 로그 차수(반복문 구현)*/</span>
<a href="#__codelineno-147-2" id="__codelineno-147-2" name="__codelineno-147-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">logarithmic</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-147-3" id="__codelineno-147-3" name="__codelineno-147-3"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-147-4" id="__codelineno-147-4" name="__codelineno-147-4"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-147-5" id="__codelineno-147-5" name="__codelineno-147-5"></a><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span>
<a href="#__codelineno-147-6" id="__codelineno-147-6" name="__codelineno-147-6"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span>
<a href="#__codelineno-147-7" id="__codelineno-147-7" name="__codelineno-147-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-147-8" id="__codelineno-147-8" name="__codelineno-147-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span>
<a href="#__codelineno-147-9" id="__codelineno-147-9" name="__codelineno-147-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-148-1" id="__codelineno-148-1" name="__codelineno-148-1"></a><span class="cm">/* 로그 차수(반복문 구현) */</span>
<a href="#__codelineno-148-2" id="__codelineno-148-2" name="__codelineno-148-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">logarithmic</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-148-3" id="__codelineno-148-3" name="__codelineno-148-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-148-4" id="__codelineno-148-4" name="__codelineno-148-4"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">n</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">n</span>
<a href="#__codelineno-148-5" id="__codelineno-148-5" name="__codelineno-148-5"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-148-6" id="__codelineno-148-6" name="__codelineno-148-6"></a><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span>
<a href="#__codelineno-148-7" id="__codelineno-148-7" name="__codelineno-148-7"></a><span class="w"> </span><span class="bp">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-148-8" id="__codelineno-148-8" name="__codelineno-148-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-148-9" id="__codelineno-148-9" name="__codelineno-148-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="bp">count</span>
<a href="#__codelineno-148-10" id="__codelineno-148-10" name="__codelineno-148-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-149-1" id="__codelineno-149-1" name="__codelineno-149-1"></a><span class="cm">/* 로그 차수(반복문 구현) */</span>
<a href="#__codelineno-149-2" id="__codelineno-149-2" name="__codelineno-149-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">logarithmic</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-149-3" id="__codelineno-149-3" name="__codelineno-149-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-149-4" id="__codelineno-149-4" name="__codelineno-149-4"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-149-5" id="__codelineno-149-5" name="__codelineno-149-5"></a><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span>
<a href="#__codelineno-149-6" id="__codelineno-149-6" name="__codelineno-149-6"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-149-7" id="__codelineno-149-7" name="__codelineno-149-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-149-8" id="__codelineno-149-8" name="__codelineno-149-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-149-9" id="__codelineno-149-9" name="__codelineno-149-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-150-1" id="__codelineno-150-1" name="__codelineno-150-1"></a><span class="cm">/* 로그 차수(반복문 구현) */</span>
<a href="#__codelineno-150-2" id="__codelineno-150-2" name="__codelineno-150-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">logarithmic</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-150-3" id="__codelineno-150-3" name="__codelineno-150-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-150-4" id="__codelineno-150-4" name="__codelineno-150-4"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-150-5" id="__codelineno-150-5" name="__codelineno-150-5"></a><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span>
<a href="#__codelineno-150-6" id="__codelineno-150-6" name="__codelineno-150-6"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-150-7" id="__codelineno-150-7" name="__codelineno-150-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-150-8" id="__codelineno-150-8" name="__codelineno-150-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-150-9" id="__codelineno-150-9" name="__codelineno-150-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-151-1" id="__codelineno-151-1" name="__codelineno-151-1"></a><span class="cm">/* 로그 차수(반복문 구현) */</span>
<a href="#__codelineno-151-2" id="__codelineno-151-2" name="__codelineno-151-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">logarithmic</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-151-3" id="__codelineno-151-3" name="__codelineno-151-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span>
<a href="#__codelineno-151-4" id="__codelineno-151-4" name="__codelineno-151-4"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-151-5" id="__codelineno-151-5" name="__codelineno-151-5"></a><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">~/</span><span class="w"> </span><span class="m">2</span><span class="p">;</span>
<a href="#__codelineno-151-6" id="__codelineno-151-6" name="__codelineno-151-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-151-7" id="__codelineno-151-7" name="__codelineno-151-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-151-8" id="__codelineno-151-8" name="__codelineno-151-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-151-9" id="__codelineno-151-9" name="__codelineno-151-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-152-1" id="__codelineno-152-1" name="__codelineno-152-1"></a><span class="cm">/* 로그 차수(반복문 구현) */</span>
<a href="#__codelineno-152-2" id="__codelineno-152-2" name="__codelineno-152-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">logarithmic</span><span class="p">(</span><span class="k">mut</span><span class="w"> </span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-152-3" id="__codelineno-152-3" name="__codelineno-152-3"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-152-4" id="__codelineno-152-4" name="__codelineno-152-4"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-152-5" id="__codelineno-152-5" name="__codelineno-152-5"></a><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a href="#__codelineno-152-6" id="__codelineno-152-6" name="__codelineno-152-6"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-152-7" id="__codelineno-152-7" name="__codelineno-152-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-152-8" id="__codelineno-152-8" name="__codelineno-152-8"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-152-9" id="__codelineno-152-9" name="__codelineno-152-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-153-1" id="__codelineno-153-1" name="__codelineno-153-1"></a><span class="cm">/* 로그 차수(반복문 구현) */</span>
<a href="#__codelineno-153-2" id="__codelineno-153-2" name="__codelineno-153-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">logarithmic</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-153-3" id="__codelineno-153-3" name="__codelineno-153-3"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-153-4" id="__codelineno-153-4" name="__codelineno-153-4"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-153-5" id="__codelineno-153-5" name="__codelineno-153-5"></a><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<a href="#__codelineno-153-6" id="__codelineno-153-6" name="__codelineno-153-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-153-7" id="__codelineno-153-7" name="__codelineno-153-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-153-8" id="__codelineno-153-8" name="__codelineno-153-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-153-9" id="__codelineno-153-9" name="__codelineno-153-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-154-1" id="__codelineno-154-1" name="__codelineno-154-1"></a><span class="cm">/* 로그 차수(반복문 구현) */</span>
<a href="#__codelineno-154-2" id="__codelineno-154-2" name="__codelineno-154-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">logarithmic</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-154-3" id="__codelineno-154-3" name="__codelineno-154-3"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">n1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span>
<a href="#__codelineno-154-4" id="__codelineno-154-4" name="__codelineno-154-4"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span>
<a href="#__codelineno-154-5" id="__codelineno-154-5" name="__codelineno-154-5"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">n1</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-154-6" id="__codelineno-154-6" name="__codelineno-154-6"></a><span class="w"> </span><span class="n">n1</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="m">2</span>
<a href="#__codelineno-154-7" id="__codelineno-154-7" name="__codelineno-154-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span>
<a href="#__codelineno-154-8" id="__codelineno-154-8" name="__codelineno-154-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-154-9" id="__codelineno-154-9" name="__codelineno-154-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-154-10" id="__codelineno-154-10" name="__codelineno-154-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-155-1" id="__codelineno-155-1" name="__codelineno-155-1"></a><span class="c1">### 로그 차수(반복문 구현)###</span>
<a href="#__codelineno-155-2" id="__codelineno-155-2" name="__codelineno-155-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">logarithmic</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-155-3" id="__codelineno-155-3" name="__codelineno-155-3"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-155-4" id="__codelineno-155-4" name="__codelineno-155-4"></a>
<a href="#__codelineno-155-5" id="__codelineno-155-5" name="__codelineno-155-5"></a><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-155-6" id="__codelineno-155-6" name="__codelineno-155-6"></a><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">2</span>
<a href="#__codelineno-155-7" id="__codelineno-155-7" name="__codelineno-155-7"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-155-8" id="__codelineno-155-8" name="__codelineno-155-8"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-155-9" id="__codelineno-155-9" name="__codelineno-155-9"></a>
<a href="#__codelineno-155-10" id="__codelineno-155-10" name="__codelineno-155-10"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-155-11" id="__codelineno-155-11" name="__codelineno-155-11"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 459px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20logarithmic%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%28%EB%B0%98%EB%B3%B5%EB%AC%B8%20%EA%B5%AC%ED%98%84%29%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20while%20n%20%3E%201%3A%0A%20%20%20%20%20%20%20%20n%20%3D%20n%20/%202%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20logarithmic%28n%29%0A%20%20%20%20print%28%22%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%28%EB%B0%98%EB%B3%B5%EB%AC%B8%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20logarithmic%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%28%EB%B0%98%EB%B3%B5%EB%AC%B8%20%EA%B5%AC%ED%98%84%29%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20while%20n%20%3E%201%3A%0A%20%20%20%20%20%20%20%20n%20%3D%20n%20/%202%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20logarithmic%28n%29%0A%20%20%20%20print%28%22%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%28%EB%B0%98%EB%B3%B5%EB%AC%B8%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<p><ha-svg-figure class="animation-figure" data-book-key="ko/chapter_computational_complexity/time_complexity.assets/time_complexity_logarithmic.png" data-dark-src="/assets/figure-svg/figures/ff8cd33cbd15c82565b8c20f.json" data-src="/assets/figure-svg/figures/60d2b8611bb6ae069157058e.json" style=";--figure-ratio:960.0/540.0"><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_logarithmic.svg" data-theme="light" tabindex="-1" type="image/svg+xml">로그 시간 복잡도</object><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_logarithmic.dark.svg" data-theme="dark" tabindex="-1" type="image/svg+xml">로그 시간 복잡도</object></ha-svg-figure></p>
<p align="center"> 그림 2-12   로그 시간 복잡도 </p>
<p>지수 시간처럼 로그 시간도 재귀 함수에 자주 나타난다. 다음 코드는 높이가 <span class="arithmatex">\(\log_2 n\)</span>인 재귀 트리를 만든다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="13:13"><input checked="checked" id="__tabbed_13_1" name="__tabbed_13" type="radio"/><input id="__tabbed_13_2" name="__tabbed_13" type="radio"/><input id="__tabbed_13_3" name="__tabbed_13" type="radio"/><input id="__tabbed_13_4" name="__tabbed_13" type="radio"/><input id="__tabbed_13_5" name="__tabbed_13" type="radio"/><input id="__tabbed_13_6" name="__tabbed_13" type="radio"/><input id="__tabbed_13_7" name="__tabbed_13" type="radio"/><input id="__tabbed_13_8" name="__tabbed_13" type="radio"/><input id="__tabbed_13_9" name="__tabbed_13" type="radio"/><input id="__tabbed_13_10" name="__tabbed_13" type="radio"/><input id="__tabbed_13_11" name="__tabbed_13" type="radio"/><input id="__tabbed_13_12" name="__tabbed_13" type="radio"/><input id="__tabbed_13_13" name="__tabbed_13" type="radio"/><div class="tabbed-labels"><label for="__tabbed_13_1">Python</label><label for="__tabbed_13_2">C++</label><label for="__tabbed_13_3">Java</label><label for="__tabbed_13_4">C#</label><label for="__tabbed_13_5">Go</label><label for="__tabbed_13_6">Swift</label><label for="__tabbed_13_7">JS</label><label for="__tabbed_13_8">TS</label><label for="__tabbed_13_9">Dart</label><label for="__tabbed_13_10">Rust</label><label for="__tabbed_13_11">C</label><label for="__tabbed_13_12">Kotlin</label><label for="__tabbed_13_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-156-1" id="__codelineno-156-1" name="__codelineno-156-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">log_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-156-2" id="__codelineno-156-2" name="__codelineno-156-2"></a><span class="w"> </span><span class="sd">"""로그 차수(재귀 구현)"""</span>
<a href="#__codelineno-156-3" id="__codelineno-156-3" name="__codelineno-156-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o">&lt;=</span> <span class="mi">1</span><span class="p">:</span>
<a href="#__codelineno-156-4" id="__codelineno-156-4" name="__codelineno-156-4"></a> <span class="k">return</span> <span class="mi">0</span>
<a href="#__codelineno-156-5" id="__codelineno-156-5" name="__codelineno-156-5"></a> <span class="k">return</span> <span class="n">log_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-157-1" id="__codelineno-157-1" name="__codelineno-157-1"></a><span class="cm">/* 로그 차수(재귀 구현) */</span>
<a href="#__codelineno-157-2" id="__codelineno-157-2" name="__codelineno-157-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">logRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-157-3" id="__codelineno-157-3" name="__codelineno-157-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-157-4" id="__codelineno-157-4" name="__codelineno-157-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-157-5" id="__codelineno-157-5" name="__codelineno-157-5"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">logRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-157-6" id="__codelineno-157-6" name="__codelineno-157-6"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-158-1" id="__codelineno-158-1" name="__codelineno-158-1"></a><span class="cm">/* 로그 차수(재귀 구현) */</span>
<a href="#__codelineno-158-2" id="__codelineno-158-2" name="__codelineno-158-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">logRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-158-3" id="__codelineno-158-3" name="__codelineno-158-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-158-4" id="__codelineno-158-4" name="__codelineno-158-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-158-5" id="__codelineno-158-5" name="__codelineno-158-5"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">logRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-158-6" id="__codelineno-158-6" name="__codelineno-158-6"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-159-1" id="__codelineno-159-1" name="__codelineno-159-1"></a><span class="cm">/* 로그 차수(재귀 구현) */</span>
<a href="#__codelineno-159-2" id="__codelineno-159-2" name="__codelineno-159-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">LogRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-159-3" id="__codelineno-159-3" name="__codelineno-159-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-159-4" id="__codelineno-159-4" name="__codelineno-159-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nf">LogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-159-5" id="__codelineno-159-5" name="__codelineno-159-5"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-160-1" id="__codelineno-160-1" name="__codelineno-160-1"></a><span class="cm">/* 로그 차수(재귀 구현)*/</span>
<a href="#__codelineno-160-2" id="__codelineno-160-2" name="__codelineno-160-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">logRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-160-3" id="__codelineno-160-3" name="__codelineno-160-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-160-4" id="__codelineno-160-4" name="__codelineno-160-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-160-5" id="__codelineno-160-5" name="__codelineno-160-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-160-6" id="__codelineno-160-6" name="__codelineno-160-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">logRecur</span><span class="p">(</span><span class="nx">n</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-160-7" id="__codelineno-160-7" name="__codelineno-160-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-161-1" id="__codelineno-161-1" name="__codelineno-161-1"></a><span class="cm">/* 로그 차수(재귀 구현) */</span>
<a href="#__codelineno-161-2" id="__codelineno-161-2" name="__codelineno-161-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">logRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-161-3" id="__codelineno-161-3" name="__codelineno-161-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-161-4" id="__codelineno-161-4" name="__codelineno-161-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-161-5" id="__codelineno-161-5" name="__codelineno-161-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-161-6" id="__codelineno-161-6" name="__codelineno-161-6"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">logRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-161-7" id="__codelineno-161-7" name="__codelineno-161-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-162-1" id="__codelineno-162-1" name="__codelineno-162-1"></a><span class="cm">/* 로그 차수(재귀 구현) */</span>
<a href="#__codelineno-162-2" id="__codelineno-162-2" name="__codelineno-162-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">logRecur</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-162-3" id="__codelineno-162-3" name="__codelineno-162-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-162-4" id="__codelineno-162-4" name="__codelineno-162-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">logRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-162-5" id="__codelineno-162-5" name="__codelineno-162-5"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-163-1" id="__codelineno-163-1" name="__codelineno-163-1"></a><span class="cm">/* 로그 차수(재귀 구현) */</span>
<a href="#__codelineno-163-2" id="__codelineno-163-2" name="__codelineno-163-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">logRecur</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-163-3" id="__codelineno-163-3" name="__codelineno-163-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-163-4" id="__codelineno-163-4" name="__codelineno-163-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">logRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-163-5" id="__codelineno-163-5" name="__codelineno-163-5"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-164-1" id="__codelineno-164-1" name="__codelineno-164-1"></a><span class="cm">/* 로그 차수(재귀 구현) */</span>
<a href="#__codelineno-164-2" id="__codelineno-164-2" name="__codelineno-164-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">logRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-164-3" id="__codelineno-164-3" name="__codelineno-164-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">0</span><span class="p">;</span>
<a href="#__codelineno-164-4" id="__codelineno-164-4" name="__codelineno-164-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">logRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">~/</span><span class="w"> </span><span class="m">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span>
<a href="#__codelineno-164-5" id="__codelineno-164-5" name="__codelineno-164-5"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-165-1" id="__codelineno-165-1" name="__codelineno-165-1"></a><span class="cm">/* 로그 차수(재귀 구현) */</span>
<a href="#__codelineno-165-2" id="__codelineno-165-2" name="__codelineno-165-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">log_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-165-3" id="__codelineno-165-3" name="__codelineno-165-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-165-4" id="__codelineno-165-4" name="__codelineno-165-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-165-5" id="__codelineno-165-5" name="__codelineno-165-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-165-6" id="__codelineno-165-6" name="__codelineno-165-6"></a><span class="w"> </span><span class="n">log_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-165-7" id="__codelineno-165-7" name="__codelineno-165-7"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-166-1" id="__codelineno-166-1" name="__codelineno-166-1"></a><span class="cm">/* 로그 차수(재귀 구현) */</span>
<a href="#__codelineno-166-2" id="__codelineno-166-2" name="__codelineno-166-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">logRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-166-3" id="__codelineno-166-3" name="__codelineno-166-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-166-4" id="__codelineno-166-4" name="__codelineno-166-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-166-5" id="__codelineno-166-5" name="__codelineno-166-5"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">logRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-166-6" id="__codelineno-166-6" name="__codelineno-166-6"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-167-1" id="__codelineno-167-1" name="__codelineno-167-1"></a><span class="cm">/* 로그 차수(재귀 구현) */</span>
<a href="#__codelineno-167-2" id="__codelineno-167-2" name="__codelineno-167-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">logRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-167-3" id="__codelineno-167-3" name="__codelineno-167-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="m">1</span><span class="p">)</span>
<a href="#__codelineno-167-4" id="__codelineno-167-4" name="__codelineno-167-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">0</span>
<a href="#__codelineno-167-5" id="__codelineno-167-5" name="__codelineno-167-5"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">logRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="m">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span>
<a href="#__codelineno-167-6" id="__codelineno-167-6" name="__codelineno-167-6"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-168-1" id="__codelineno-168-1" name="__codelineno-168-1"></a><span class="c1">### 로그 차수(재귀 구현)###</span>
<a href="#__codelineno-168-2" id="__codelineno-168-2" name="__codelineno-168-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">log_recur</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-168-3" id="__codelineno-168-3" name="__codelineno-168-3"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">unless</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-168-4" id="__codelineno-168-4" name="__codelineno-168-4"></a><span class="w"> </span><span class="n">log_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-168-5" id="__codelineno-168-5" name="__codelineno-168-5"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 423px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20log_recur%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%22%22%22%0A%20%20%20%20if%20n%20%3C%3D%201%3A%0A%20%20%20%20%20%20%20%20return%200%0A%20%20%20%20return%20log_recur%28n%20/%202%29%20%2B%201%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20log_recur%28n%29%0A%20%20%20%20print%28%22%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=4&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20log_recur%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%22%22%22%0A%20%20%20%20if%20n%20%3C%3D%201%3A%0A%20%20%20%20%20%20%20%20return%200%0A%20%20%20%20return%20log_recur%28n%20/%202%29%20%2B%201%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20log_recur%28n%29%0A%20%20%20%20print%28%22%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=4&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<p>로그 시간은 분할 정복 전략에 기반한 알고리즘에 자주 나타나며, ‘하나를 여러 개로 나누기’, ‘복잡한 것을 단순하게 만들기’라는 알고리즘 사고방식을 보여 준다. 증가 속도가 느려 상수 시간 다음으로 이상적인 시간 복잡도다.</p>
<div class="admonition tip">
<p class="admonition-title"><span class="arithmatex">\(O(\log n)\)</span>의 밑은 무엇인가?</p>
<p>정확히 말하면, ‘하나를 <span class="arithmatex">\(m\)</span>개로 나누기’에 해당하는 시간 복잡도는 <span class="arithmatex">\(O(\log_m n)\)</span>이다. 로그의 밑 변환 공식을 적용하면 밑이 달라도 같은 시간 복잡도를 얻는다.</p>
<div class="arithmatex">\[
O(\log_m n) = O(\log_k n / \log_k m) = O(\log_k n)
\]</div>
<p>즉, 밑 <span class="arithmatex">\(m\)</span>은 복잡도에 영향을 주지 않고 바꿀 수 있다. 따라서 보통 밑 <span class="arithmatex">\(m\)</span>을 생략하고 로그 시간을 <span class="arithmatex">\(O(\log n)\)</span>으로 표기한다.</p>
</div>
<h3 id="6-on-log-n">6.   선형 로그 시간 <span class="arithmatex">\(O(n \log n)\)</span><a class="headerlink" href="#6-on-log-n" title="고유 링크"></a></h3>
<p>선형 로그 시간은 중첩 반복문에 자주 나타나며, 두 반복문의 시간 복잡도는 각각 <span class="arithmatex">\(O(\log n)\)</span>과 <span class="arithmatex">\(O(n)\)</span>이다. 관련 코드는 다음과 같다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="14:13"><input checked="checked" id="__tabbed_14_1" name="__tabbed_14" type="radio"/><input id="__tabbed_14_2" name="__tabbed_14" type="radio"/><input id="__tabbed_14_3" name="__tabbed_14" type="radio"/><input id="__tabbed_14_4" name="__tabbed_14" type="radio"/><input id="__tabbed_14_5" name="__tabbed_14" type="radio"/><input id="__tabbed_14_6" name="__tabbed_14" type="radio"/><input id="__tabbed_14_7" name="__tabbed_14" type="radio"/><input id="__tabbed_14_8" name="__tabbed_14" type="radio"/><input id="__tabbed_14_9" name="__tabbed_14" type="radio"/><input id="__tabbed_14_10" name="__tabbed_14" type="radio"/><input id="__tabbed_14_11" name="__tabbed_14" type="radio"/><input id="__tabbed_14_12" name="__tabbed_14" type="radio"/><input id="__tabbed_14_13" name="__tabbed_14" type="radio"/><div class="tabbed-labels"><label for="__tabbed_14_1">Python</label><label for="__tabbed_14_2">C++</label><label for="__tabbed_14_3">Java</label><label for="__tabbed_14_4">C#</label><label for="__tabbed_14_5">Go</label><label for="__tabbed_14_6">Swift</label><label for="__tabbed_14_7">JS</label><label for="__tabbed_14_8">TS</label><label for="__tabbed_14_9">Dart</label><label for="__tabbed_14_10">Rust</label><label for="__tabbed_14_11">C</label><label for="__tabbed_14_12">Kotlin</label><label for="__tabbed_14_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-169-1" id="__codelineno-169-1" name="__codelineno-169-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-169-2" id="__codelineno-169-2" name="__codelineno-169-2"></a><span class="w"> </span><span class="sd">"""선형 로그 차수"""</span>
<a href="#__codelineno-169-3" id="__codelineno-169-3" name="__codelineno-169-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o">&lt;=</span> <span class="mi">1</span><span class="p">:</span>
<a href="#__codelineno-169-4" id="__codelineno-169-4" name="__codelineno-169-4"></a> <span class="k">return</span> <span class="mi">1</span>
<a href="#__codelineno-169-5" id="__codelineno-169-5" name="__codelineno-169-5"></a> <span class="c1"># 둘로 나누어 부분 문제의 크기를 절반으로 줄인다</span>
<a href="#__codelineno-169-6" id="__codelineno-169-6" name="__codelineno-169-6"></a> <span class="n">count</span> <span class="o">=</span> <span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
<a href="#__codelineno-169-7" id="__codelineno-169-7" name="__codelineno-169-7"></a> <span class="c1"># 현재 부분 문제에는 n회의 연산이 포함된다</span>
<a href="#__codelineno-169-8" id="__codelineno-169-8" name="__codelineno-169-8"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
<a href="#__codelineno-169-9" id="__codelineno-169-9" name="__codelineno-169-9"></a> <span class="n">count</span> <span class="o">+=</span> <span class="mi">1</span>
<a href="#__codelineno-169-10" id="__codelineno-169-10" name="__codelineno-169-10"></a> <span class="k">return</span> <span class="n">count</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-170-1" id="__codelineno-170-1" name="__codelineno-170-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-170-2" id="__codelineno-170-2" name="__codelineno-170-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">linearLogRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-170-3" id="__codelineno-170-3" name="__codelineno-170-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-170-4" id="__codelineno-170-4" name="__codelineno-170-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-170-5" id="__codelineno-170-5" name="__codelineno-170-5"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span>
<a href="#__codelineno-170-6" id="__codelineno-170-6" name="__codelineno-170-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-170-7" id="__codelineno-170-7" name="__codelineno-170-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-170-8" id="__codelineno-170-8" name="__codelineno-170-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-170-9" id="__codelineno-170-9" name="__codelineno-170-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-170-10" id="__codelineno-170-10" name="__codelineno-170-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-171-1" id="__codelineno-171-1" name="__codelineno-171-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-171-2" id="__codelineno-171-2" name="__codelineno-171-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">linearLogRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-171-3" id="__codelineno-171-3" name="__codelineno-171-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-171-4" id="__codelineno-171-4" name="__codelineno-171-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-171-5" id="__codelineno-171-5" name="__codelineno-171-5"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span>
<a href="#__codelineno-171-6" id="__codelineno-171-6" name="__codelineno-171-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-171-7" id="__codelineno-171-7" name="__codelineno-171-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-171-8" id="__codelineno-171-8" name="__codelineno-171-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-171-9" id="__codelineno-171-9" name="__codelineno-171-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-171-10" id="__codelineno-171-10" name="__codelineno-171-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-172-1" id="__codelineno-172-1" name="__codelineno-172-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-172-2" id="__codelineno-172-2" name="__codelineno-172-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">LinearLogRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-172-3" id="__codelineno-172-3" name="__codelineno-172-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-172-4" id="__codelineno-172-4" name="__codelineno-172-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">LinearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">LinearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span>
<a href="#__codelineno-172-5" id="__codelineno-172-5" name="__codelineno-172-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-172-6" id="__codelineno-172-6" name="__codelineno-172-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-172-7" id="__codelineno-172-7" name="__codelineno-172-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-172-8" id="__codelineno-172-8" name="__codelineno-172-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-172-9" id="__codelineno-172-9" name="__codelineno-172-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-173-1" id="__codelineno-173-1" name="__codelineno-173-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-173-2" id="__codelineno-173-2" name="__codelineno-173-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">linearLogRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-173-3" id="__codelineno-173-3" name="__codelineno-173-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-173-4" id="__codelineno-173-4" name="__codelineno-173-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-173-5" id="__codelineno-173-5" name="__codelineno-173-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-173-6" id="__codelineno-173-6" name="__codelineno-173-6"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">linearLogRecur</span><span class="p">(</span><span class="nx">n</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">linearLogRecur</span><span class="p">(</span><span class="nx">n</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span>
<a href="#__codelineno-173-7" id="__codelineno-173-7" name="__codelineno-173-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-173-8" id="__codelineno-173-8" name="__codelineno-173-8"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span>
<a href="#__codelineno-173-9" id="__codelineno-173-9" name="__codelineno-173-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-173-10" id="__codelineno-173-10" name="__codelineno-173-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span>
<a href="#__codelineno-173-11" id="__codelineno-173-11" name="__codelineno-173-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-174-1" id="__codelineno-174-1" name="__codelineno-174-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-174-2" id="__codelineno-174-2" name="__codelineno-174-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-174-3" id="__codelineno-174-3" name="__codelineno-174-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-174-4" id="__codelineno-174-4" name="__codelineno-174-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-174-5" id="__codelineno-174-5" name="__codelineno-174-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-174-6" id="__codelineno-174-6" name="__codelineno-174-6"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span>
<a href="#__codelineno-174-7" id="__codelineno-174-7" name="__codelineno-174-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="bp">stride</span><span class="p">(</span><span class="n">from</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">to</span><span class="p">:</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="w"> </span><span class="n">by</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-174-8" id="__codelineno-174-8" name="__codelineno-174-8"></a><span class="w"> </span><span class="bp">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-174-9" id="__codelineno-174-9" name="__codelineno-174-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-174-10" id="__codelineno-174-10" name="__codelineno-174-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="bp">count</span>
<a href="#__codelineno-174-11" id="__codelineno-174-11" name="__codelineno-174-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-175-1" id="__codelineno-175-1" name="__codelineno-175-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-175-2" id="__codelineno-175-2" name="__codelineno-175-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">linearLogRecur</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-175-3" id="__codelineno-175-3" name="__codelineno-175-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-175-4" id="__codelineno-175-4" name="__codelineno-175-4"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">linearLogRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">linearLogRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2</span><span class="p">);</span>
<a href="#__codelineno-175-5" id="__codelineno-175-5" name="__codelineno-175-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-175-6" id="__codelineno-175-6" name="__codelineno-175-6"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-175-7" id="__codelineno-175-7" name="__codelineno-175-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-175-8" id="__codelineno-175-8" name="__codelineno-175-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-175-9" id="__codelineno-175-9" name="__codelineno-175-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-176-1" id="__codelineno-176-1" name="__codelineno-176-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-176-2" id="__codelineno-176-2" name="__codelineno-176-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">linearLogRecur</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-176-3" id="__codelineno-176-3" name="__codelineno-176-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-176-4" id="__codelineno-176-4" name="__codelineno-176-4"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">linearLogRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">linearLogRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2</span><span class="p">);</span>
<a href="#__codelineno-176-5" id="__codelineno-176-5" name="__codelineno-176-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-176-6" id="__codelineno-176-6" name="__codelineno-176-6"></a><span class="w"> </span><span class="nx">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-176-7" id="__codelineno-176-7" name="__codelineno-176-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-176-8" id="__codelineno-176-8" name="__codelineno-176-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-176-9" id="__codelineno-176-9" name="__codelineno-176-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-177-1" id="__codelineno-177-1" name="__codelineno-177-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-177-2" id="__codelineno-177-2" name="__codelineno-177-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-177-3" id="__codelineno-177-3" name="__codelineno-177-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">1</span><span class="p">;</span>
<a href="#__codelineno-177-4" id="__codelineno-177-4" name="__codelineno-177-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">~/</span><span class="w"> </span><span class="m">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">~/</span><span class="w"> </span><span class="m">2</span><span class="p">);</span>
<a href="#__codelineno-177-5" id="__codelineno-177-5" name="__codelineno-177-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-177-6" id="__codelineno-177-6" name="__codelineno-177-6"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-177-7" id="__codelineno-177-7" name="__codelineno-177-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-177-8" id="__codelineno-177-8" name="__codelineno-177-8"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-177-9" id="__codelineno-177-9" name="__codelineno-177-9"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-178-1" id="__codelineno-178-1" name="__codelineno-178-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-178-2" id="__codelineno-178-2" name="__codelineno-178-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-178-3" id="__codelineno-178-3" name="__codelineno-178-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-178-4" id="__codelineno-178-4" name="__codelineno-178-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-178-5" id="__codelineno-178-5" name="__codelineno-178-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-178-6" id="__codelineno-178-6" name="__codelineno-178-6"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span>
<a href="#__codelineno-178-7" id="__codelineno-178-7" name="__codelineno-178-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-178-8" id="__codelineno-178-8" name="__codelineno-178-8"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-178-9" id="__codelineno-178-9" name="__codelineno-178-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-178-10" id="__codelineno-178-10" name="__codelineno-178-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-178-11" id="__codelineno-178-11" name="__codelineno-178-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-179-1" id="__codelineno-179-1" name="__codelineno-179-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-179-2" id="__codelineno-179-2" name="__codelineno-179-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">linearLogRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-179-3" id="__codelineno-179-3" name="__codelineno-179-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-179-4" id="__codelineno-179-4" name="__codelineno-179-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-179-5" id="__codelineno-179-5" name="__codelineno-179-5"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span>
<a href="#__codelineno-179-6" id="__codelineno-179-6" name="__codelineno-179-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-179-7" id="__codelineno-179-7" name="__codelineno-179-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span><span class="p">;</span>
<a href="#__codelineno-179-8" id="__codelineno-179-8" name="__codelineno-179-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-179-9" id="__codelineno-179-9" name="__codelineno-179-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-179-10" id="__codelineno-179-10" name="__codelineno-179-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-180-1" id="__codelineno-180-1" name="__codelineno-180-1"></a><span class="cm">/* 선형 로그 차수 */</span>
<a href="#__codelineno-180-2" id="__codelineno-180-2" name="__codelineno-180-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-180-3" id="__codelineno-180-3" name="__codelineno-180-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="m">1</span><span class="p">)</span>
<a href="#__codelineno-180-4" id="__codelineno-180-4" name="__codelineno-180-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">1</span>
<a href="#__codelineno-180-5" id="__codelineno-180-5" name="__codelineno-180-5"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="m">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">linearLogRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="m">2</span><span class="p">)</span>
<a href="#__codelineno-180-6" id="__codelineno-180-6" name="__codelineno-180-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-180-7" id="__codelineno-180-7" name="__codelineno-180-7"></a><span class="w"> </span><span class="n">count</span><span class="o">++</span>
<a href="#__codelineno-180-8" id="__codelineno-180-8" name="__codelineno-180-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-180-9" id="__codelineno-180-9" name="__codelineno-180-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-180-10" id="__codelineno-180-10" name="__codelineno-180-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-181-1" id="__codelineno-181-1" name="__codelineno-181-1"></a><span class="c1">### 선형 로그 차수 ###</span>
<a href="#__codelineno-181-2" id="__codelineno-181-2" name="__codelineno-181-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-181-3" id="__codelineno-181-3" name="__codelineno-181-3"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">unless</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-181-4" id="__codelineno-181-4" name="__codelineno-181-4"></a>
<a href="#__codelineno-181-5" id="__codelineno-181-5" name="__codelineno-181-5"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span>
<a href="#__codelineno-181-6" id="__codelineno-181-6" name="__codelineno-181-6"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="n">n</span><span class="p">)</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-181-7" id="__codelineno-181-7" name="__codelineno-181-7"></a>
<a href="#__codelineno-181-8" id="__codelineno-181-8" name="__codelineno-181-8"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-181-9" id="__codelineno-181-9" name="__codelineno-181-9"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 477px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20linear_log_recur%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%84%A0%ED%98%95%20%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%22%22%22%0A%20%20%20%20if%20n%20%3C%3D%201%3A%0A%20%20%20%20%20%20%20%20return%201%0A%20%20%20%20count%20%3D%20linear_log_recur%28n%20//%202%29%20%2B%20linear_log_recur%28n%20//%202%29%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20linear_log_recur%28n%29%0A%20%20%20%20print%28%22%EC%84%A0%ED%98%95%20%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=4&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20linear_log_recur%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EC%84%A0%ED%98%95%20%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%22%22%22%0A%20%20%20%20if%20n%20%3C%3D%201%3A%0A%20%20%20%20%20%20%20%20return%201%0A%20%20%20%20count%20%3D%20linear_log_recur%28n%20//%202%29%20%2B%20linear_log_recur%28n%20//%202%29%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20linear_log_recur%28n%29%0A%20%20%20%20print%28%22%EC%84%A0%ED%98%95%20%EB%A1%9C%EA%B7%B8%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=4&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<p>아래 그림(2-13)은 선형 로그 시간이 만들어지는 방식을 보여 준다. 이진 트리의 각 층에서 수행하는 전체 연산 횟수는 <span class="arithmatex">\(n\)</span>이고, 층수는 <span class="arithmatex">\(\log_2 n + 1\)</span>이므로 시간 복잡도는 <span class="arithmatex">\(O(n \log n)\)</span>이다.</p>
<p><ha-svg-figure class="animation-figure" data-book-key="ko/chapter_computational_complexity/time_complexity.assets/time_complexity_logarithmic_linear.png" data-dark-src="/assets/figure-svg/figures/94f9c612fb2ba1fe71d6e395.json" data-src="/assets/figure-svg/figures/7bc5235eacd84ac08f5fed9d.json" style=";--figure-ratio:960.0/540.0"><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_logarithmic_linear.svg" data-theme="light" tabindex="-1" type="image/svg+xml">선형 로그 시간 복잡도</object><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_logarithmic_linear.dark.svg" data-theme="dark" tabindex="-1" type="image/svg+xml">선형 로그 시간 복잡도</object></ha-svg-figure></p>
<p align="center"> 그림 2-13   선형 로그 시간 복잡도 </p>
<p>퀵 정렬, 병합 정렬, 힙 정렬 등 널리 쓰이는 정렬 알고리즘의 시간 복잡도는 보통 <span class="arithmatex">\(O(n \log n)\)</span>이다.</p>
<h3 id="7-on">7.   팩토리얼 시간 <span class="arithmatex">\(O(n!)\)</span><a class="headerlink" href="#7-on" title="고유 링크"></a></h3>
<p>팩토리얼 시간은 수학의 ‘모든 순열 구하기’ 문제에 해당한다. 서로 다른 원소 <span class="arithmatex">\(n\)</span>개가 주어졌을 때 가능한 모든 순열을 구하면, 그 개수는 다음과 같다.</p>
<div class="arithmatex">\[
n! = n \times (n - 1) \times (n - 2) \times \dots \times 2 \times 1
\]</div>
<p>팩토리얼은 보통 재귀로 구현한다. 아래 그림(2-14)과 코드에서 첫 번째 층은 <span class="arithmatex">\(n\)</span>개로, 두 번째 층은 <span class="arithmatex">\(n - 1\)</span>개로 분기하며, 이를 반복하다가 <span class="arithmatex">\(n\)</span>번째 층에 도달하면 분기를 멈춘다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="15:13"><input checked="checked" id="__tabbed_15_1" name="__tabbed_15" type="radio"/><input id="__tabbed_15_2" name="__tabbed_15" type="radio"/><input id="__tabbed_15_3" name="__tabbed_15" type="radio"/><input id="__tabbed_15_4" name="__tabbed_15" type="radio"/><input id="__tabbed_15_5" name="__tabbed_15" type="radio"/><input id="__tabbed_15_6" name="__tabbed_15" type="radio"/><input id="__tabbed_15_7" name="__tabbed_15" type="radio"/><input id="__tabbed_15_8" name="__tabbed_15" type="radio"/><input id="__tabbed_15_9" name="__tabbed_15" type="radio"/><input id="__tabbed_15_10" name="__tabbed_15" type="radio"/><input id="__tabbed_15_11" name="__tabbed_15" type="radio"/><input id="__tabbed_15_12" name="__tabbed_15" type="radio"/><input id="__tabbed_15_13" name="__tabbed_15" type="radio"/><div class="tabbed-labels"><label for="__tabbed_15_1">Python</label><label for="__tabbed_15_2">C++</label><label for="__tabbed_15_3">Java</label><label for="__tabbed_15_4">C#</label><label for="__tabbed_15_5">Go</label><label for="__tabbed_15_6">Swift</label><label for="__tabbed_15_7">JS</label><label for="__tabbed_15_8">TS</label><label for="__tabbed_15_9">Dart</label><label for="__tabbed_15_10">Rust</label><label for="__tabbed_15_11">C</label><label for="__tabbed_15_12">Kotlin</label><label for="__tabbed_15_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.py</span><pre><span></span><code><a href="#__codelineno-182-1" id="__codelineno-182-1" name="__codelineno-182-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">factorial_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-182-2" id="__codelineno-182-2" name="__codelineno-182-2"></a><span class="w"> </span><span class="sd">"""팩토리얼 차수(재귀 구현)"""</span>
<a href="#__codelineno-182-3" id="__codelineno-182-3" name="__codelineno-182-3"></a> <span class="k">if</span> <span class="n">n</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<a href="#__codelineno-182-4" id="__codelineno-182-4" name="__codelineno-182-4"></a> <span class="k">return</span> <span class="mi">1</span>
<a href="#__codelineno-182-5" id="__codelineno-182-5" name="__codelineno-182-5"></a> <span class="n">count</span> <span class="o">=</span> <span class="mi">0</span>
<a href="#__codelineno-182-6" id="__codelineno-182-6" name="__codelineno-182-6"></a> <span class="c1"># 하나에서 n개로 분열한다</span>
<a href="#__codelineno-182-7" id="__codelineno-182-7" name="__codelineno-182-7"></a> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
<a href="#__codelineno-182-8" id="__codelineno-182-8" name="__codelineno-182-8"></a> <span class="n">count</span> <span class="o">+=</span> <span class="n">factorial_recur</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-182-9" id="__codelineno-182-9" name="__codelineno-182-9"></a> <span class="k">return</span> <span class="n">count</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-183-1" id="__codelineno-183-1" name="__codelineno-183-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-183-2" id="__codelineno-183-2" name="__codelineno-183-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">factorialRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-183-3" id="__codelineno-183-3" name="__codelineno-183-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-183-4" id="__codelineno-183-4" name="__codelineno-183-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-183-5" id="__codelineno-183-5" name="__codelineno-183-5"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-183-6" id="__codelineno-183-6" name="__codelineno-183-6"></a><span class="w"> </span><span class="c1">// 하나에서 n개로 분열한다</span>
<a href="#__codelineno-183-7" id="__codelineno-183-7" name="__codelineno-183-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-183-8" id="__codelineno-183-8" name="__codelineno-183-8"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">factorialRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a href="#__codelineno-183-9" id="__codelineno-183-9" name="__codelineno-183-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-183-10" id="__codelineno-183-10" name="__codelineno-183-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-183-11" id="__codelineno-183-11" name="__codelineno-183-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.java</span><pre><span></span><code><a href="#__codelineno-184-1" id="__codelineno-184-1" name="__codelineno-184-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-184-2" id="__codelineno-184-2" name="__codelineno-184-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">factorialRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-184-3" id="__codelineno-184-3" name="__codelineno-184-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-184-4" id="__codelineno-184-4" name="__codelineno-184-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-184-5" id="__codelineno-184-5" name="__codelineno-184-5"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-184-6" id="__codelineno-184-6" name="__codelineno-184-6"></a><span class="w"> </span><span class="c1">// 하나에서 n개로 분열한다</span>
<a href="#__codelineno-184-7" id="__codelineno-184-7" name="__codelineno-184-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-184-8" id="__codelineno-184-8" name="__codelineno-184-8"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">factorialRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a href="#__codelineno-184-9" id="__codelineno-184-9" name="__codelineno-184-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-184-10" id="__codelineno-184-10" name="__codelineno-184-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-184-11" id="__codelineno-184-11" name="__codelineno-184-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-185-1" id="__codelineno-185-1" name="__codelineno-185-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-185-2" id="__codelineno-185-2" name="__codelineno-185-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">FactorialRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-185-3" id="__codelineno-185-3" name="__codelineno-185-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-185-4" id="__codelineno-185-4" name="__codelineno-185-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-185-5" id="__codelineno-185-5" name="__codelineno-185-5"></a><span class="w"> </span><span class="c1">// 하나에서 n개로 분열한다</span>
<a href="#__codelineno-185-6" id="__codelineno-185-6" name="__codelineno-185-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-185-7" id="__codelineno-185-7" name="__codelineno-185-7"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">FactorialRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a href="#__codelineno-185-8" id="__codelineno-185-8" name="__codelineno-185-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-185-9" id="__codelineno-185-9" name="__codelineno-185-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-185-10" id="__codelineno-185-10" name="__codelineno-185-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.go</span><pre><span></span><code><a href="#__codelineno-186-1" id="__codelineno-186-1" name="__codelineno-186-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-186-2" id="__codelineno-186-2" name="__codelineno-186-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">factorialRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-186-3" id="__codelineno-186-3" name="__codelineno-186-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-186-4" id="__codelineno-186-4" name="__codelineno-186-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-186-5" id="__codelineno-186-5" name="__codelineno-186-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-186-6" id="__codelineno-186-6" name="__codelineno-186-6"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-186-7" id="__codelineno-186-7" name="__codelineno-186-7"></a><span class="w"> </span><span class="c1">// 하나에서 n개로 분열한다</span>
<a href="#__codelineno-186-8" id="__codelineno-186-8" name="__codelineno-186-8"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-186-9" id="__codelineno-186-9" name="__codelineno-186-9"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">factorialRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-186-10" id="__codelineno-186-10" name="__codelineno-186-10"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-186-11" id="__codelineno-186-11" name="__codelineno-186-11"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span>
<a href="#__codelineno-186-12" id="__codelineno-186-12" name="__codelineno-186-12"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-187-1" id="__codelineno-187-1" name="__codelineno-187-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-187-2" id="__codelineno-187-2" name="__codelineno-187-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">factorialRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-187-3" id="__codelineno-187-3" name="__codelineno-187-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-187-4" id="__codelineno-187-4" name="__codelineno-187-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-187-5" id="__codelineno-187-5" name="__codelineno-187-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-187-6" id="__codelineno-187-6" name="__codelineno-187-6"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-187-7" id="__codelineno-187-7" name="__codelineno-187-7"></a><span class="w"> </span><span class="c1">// 하나에서 n개로 분열한다</span>
<a href="#__codelineno-187-8" id="__codelineno-187-8" name="__codelineno-187-8"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kc">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">..</span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-187-9" id="__codelineno-187-9" name="__codelineno-187-9"></a><span class="w"> </span><span class="bp">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">factorialRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-187-10" id="__codelineno-187-10" name="__codelineno-187-10"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-187-11" id="__codelineno-187-11" name="__codelineno-187-11"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="bp">count</span>
<a href="#__codelineno-187-12" id="__codelineno-187-12" name="__codelineno-187-12"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.js</span><pre><span></span><code><a href="#__codelineno-188-1" id="__codelineno-188-1" name="__codelineno-188-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-188-2" id="__codelineno-188-2" name="__codelineno-188-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">factorialRecur</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-188-3" id="__codelineno-188-3" name="__codelineno-188-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">0</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-188-4" id="__codelineno-188-4" name="__codelineno-188-4"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-188-5" id="__codelineno-188-5" name="__codelineno-188-5"></a><span class="w"> </span><span class="c1">// 하나에서 n개로 분열한다</span>
<a href="#__codelineno-188-6" id="__codelineno-188-6" name="__codelineno-188-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-188-7" id="__codelineno-188-7" name="__codelineno-188-7"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">factorialRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">);</span>
<a href="#__codelineno-188-8" id="__codelineno-188-8" name="__codelineno-188-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-188-9" id="__codelineno-188-9" name="__codelineno-188-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-188-10" id="__codelineno-188-10" name="__codelineno-188-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-189-1" id="__codelineno-189-1" name="__codelineno-189-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-189-2" id="__codelineno-189-2" name="__codelineno-189-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">factorialRecur</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-189-3" id="__codelineno-189-3" name="__codelineno-189-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">0</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-189-4" id="__codelineno-189-4" name="__codelineno-189-4"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
<a href="#__codelineno-189-5" id="__codelineno-189-5" name="__codelineno-189-5"></a><span class="w"> </span><span class="c1">// 하나에서 n개로 분열한다</span>
<a href="#__codelineno-189-6" id="__codelineno-189-6" name="__codelineno-189-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-189-7" id="__codelineno-189-7" name="__codelineno-189-7"></a><span class="w"> </span><span class="nx">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">factorialRecur</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">);</span>
<a href="#__codelineno-189-8" id="__codelineno-189-8" name="__codelineno-189-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-189-9" id="__codelineno-189-9" name="__codelineno-189-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">count</span><span class="p">;</span>
<a href="#__codelineno-189-10" id="__codelineno-189-10" name="__codelineno-189-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-190-1" id="__codelineno-190-1" name="__codelineno-190-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-190-2" id="__codelineno-190-2" name="__codelineno-190-2"></a><span class="kt">int</span><span class="w"> </span><span class="n">factorialRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-190-3" id="__codelineno-190-3" name="__codelineno-190-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">1</span><span class="p">;</span>
<a href="#__codelineno-190-4" id="__codelineno-190-4" name="__codelineno-190-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span>
<a href="#__codelineno-190-5" id="__codelineno-190-5" name="__codelineno-190-5"></a><span class="w"> </span><span class="c1">// 하나에서 n개로 분열한다</span>
<a href="#__codelineno-190-6" id="__codelineno-190-6" name="__codelineno-190-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-190-7" id="__codelineno-190-7" name="__codelineno-190-7"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">factorialRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="p">);</span>
<a href="#__codelineno-190-8" id="__codelineno-190-8" name="__codelineno-190-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-190-9" id="__codelineno-190-9" name="__codelineno-190-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-190-10" id="__codelineno-190-10" name="__codelineno-190-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-191-1" id="__codelineno-191-1" name="__codelineno-191-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-191-2" id="__codelineno-191-2" name="__codelineno-191-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">factorial_recur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-191-3" id="__codelineno-191-3" name="__codelineno-191-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-191-4" id="__codelineno-191-4" name="__codelineno-191-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-191-5" id="__codelineno-191-5" name="__codelineno-191-5"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-191-6" id="__codelineno-191-6" name="__codelineno-191-6"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-191-7" id="__codelineno-191-7" name="__codelineno-191-7"></a><span class="w"> </span><span class="c1">// 하나에서 n개로 분열한다</span>
<a href="#__codelineno-191-8" id="__codelineno-191-8" name="__codelineno-191-8"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-191-9" id="__codelineno-191-9" name="__codelineno-191-9"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">factorial_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a href="#__codelineno-191-10" id="__codelineno-191-10" name="__codelineno-191-10"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-191-11" id="__codelineno-191-11" name="__codelineno-191-11"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-191-12" id="__codelineno-191-12" name="__codelineno-191-12"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.c</span><pre><span></span><code><a href="#__codelineno-192-1" id="__codelineno-192-1" name="__codelineno-192-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-192-2" id="__codelineno-192-2" name="__codelineno-192-2"></a><span class="kt">int</span><span class="w"> </span><span class="nf">factorialRecur</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-192-3" id="__codelineno-192-3" name="__codelineno-192-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span>
<a href="#__codelineno-192-4" id="__codelineno-192-4" name="__codelineno-192-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-192-5" id="__codelineno-192-5" name="__codelineno-192-5"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<a href="#__codelineno-192-6" id="__codelineno-192-6" name="__codelineno-192-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-192-7" id="__codelineno-192-7" name="__codelineno-192-7"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">factorialRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a href="#__codelineno-192-8" id="__codelineno-192-8" name="__codelineno-192-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-192-9" id="__codelineno-192-9" name="__codelineno-192-9"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>
<a href="#__codelineno-192-10" id="__codelineno-192-10" name="__codelineno-192-10"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-193-1" id="__codelineno-193-1" name="__codelineno-193-1"></a><span class="cm">/* 팩토리얼 차수(재귀 구현) */</span>
<a href="#__codelineno-193-2" id="__codelineno-193-2" name="__codelineno-193-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">factorialRecur</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-193-3" id="__codelineno-193-3" name="__codelineno-193-3"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">0</span><span class="p">)</span>
<a href="#__codelineno-193-4" id="__codelineno-193-4" name="__codelineno-193-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">1</span>
<a href="#__codelineno-193-5" id="__codelineno-193-5" name="__codelineno-193-5"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span>
<a href="#__codelineno-193-6" id="__codelineno-193-6" name="__codelineno-193-6"></a><span class="w"> </span><span class="c1">// 하나에서 n개로 분열한다</span>
<a href="#__codelineno-193-7" id="__codelineno-193-7" name="__codelineno-193-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-193-8" id="__codelineno-193-8" name="__codelineno-193-8"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">factorialRecur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="p">)</span>
<a href="#__codelineno-193-9" id="__codelineno-193-9" name="__codelineno-193-9"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-193-10" id="__codelineno-193-10" name="__codelineno-193-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-193-11" id="__codelineno-193-11" name="__codelineno-193-11"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-194-1" id="__codelineno-194-1" name="__codelineno-194-1"></a><span class="c1">### 팩토리얼 차수(재귀 구현)###</span>
<a href="#__codelineno-194-2" id="__codelineno-194-2" name="__codelineno-194-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">factorial_recur</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-194-3" id="__codelineno-194-3" name="__codelineno-194-3"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-194-4" id="__codelineno-194-4" name="__codelineno-194-4"></a>
<a href="#__codelineno-194-5" id="__codelineno-194-5" name="__codelineno-194-5"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span>
<a href="#__codelineno-194-6" id="__codelineno-194-6" name="__codelineno-194-6"></a><span class="w"> </span><span class="c1"># 하나에서 n개로 분열한다</span>
<a href="#__codelineno-194-7" id="__codelineno-194-7" name="__codelineno-194-7"></a><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="o">...</span><span class="n">n</span><span class="p">)</span><span class="o">.</span><span class="n">each</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">factorial_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-194-8" id="__codelineno-194-8" name="__codelineno-194-8"></a>
<a href="#__codelineno-194-9" id="__codelineno-194-9" name="__codelineno-194-9"></a><span class="w"> </span><span class="n">count</span>
<a href="#__codelineno-194-10" id="__codelineno-194-10" name="__codelineno-194-10"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 495px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20factorial_recur%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%ED%8C%A9%ED%86%A0%EB%A6%AC%EC%96%BC%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%22%22%22%0A%20%20%20%20if%20n%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20return%201%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20%23%20%ED%95%98%EB%82%98%EC%97%90%EC%84%9C%20n%EA%B0%9C%EB%A1%9C%20%EB%B6%84%EC%97%B4%ED%95%9C%EB%8B%A4%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%20factorial_recur%28n%20-%201%29%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%204%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20factorial_recur%28n%29%0A%20%20%20%20print%28%22%ED%8C%A9%ED%86%A0%EB%A6%AC%EC%96%BC%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20factorial_recur%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%ED%8C%A9%ED%86%A0%EB%A6%AC%EC%96%BC%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%22%22%22%0A%20%20%20%20if%20n%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20return%201%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20%23%20%ED%95%98%EB%82%98%EC%97%90%EC%84%9C%20n%EA%B0%9C%EB%A1%9C%20%EB%B6%84%EC%97%B4%ED%95%9C%EB%8B%A4%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%20factorial_recur%28n%20-%201%29%0A%20%20%20%20return%20count%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%204%0A%20%20%20%20print%28%22%EC%9E%85%EB%A0%A5%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%81%AC%EA%B8%B0%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20factorial_recur%28n%29%0A%20%20%20%20print%28%22%ED%8C%A9%ED%86%A0%EB%A6%AC%EC%96%BC%20%EC%B0%A8%EC%88%98%28%EC%9E%AC%EA%B7%80%20%EA%B5%AC%ED%98%84%29%EC%9D%98%20%EC%97%B0%EC%82%B0%20%ED%9A%9F%EC%88%98%20%3D%22,%20count%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=3&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<p><ha-svg-figure class="animation-figure" data-book-key="ko/chapter_computational_complexity/time_complexity.assets/time_complexity_factorial.png" data-dark-src="/assets/figure-svg/figures/92ecac4b7dea1daf864c44e2.json" data-src="/assets/figure-svg/figures/13ae2ca8fb3168cfd61b1774.json" style=";--figure-ratio:960.0/540.0"><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_factorial.svg" data-theme="light" tabindex="-1" type="image/svg+xml">팩토리얼 시간 복잡도</object><object data="/ko/chapter_computational_complexity/time_complexity.assets/time_complexity_factorial.dark.svg" data-theme="dark" tabindex="-1" type="image/svg+xml">팩토리얼 시간 복잡도</object></ha-svg-figure></p>
<p align="center"> 그림 2-14   팩토리얼 시간 복잡도 </p>
<p><span class="arithmatex">\(n \geq 4\)</span>이면 항상 <span class="arithmatex">\(n! &gt; 2^n\)</span>이므로 팩토리얼 시간은 지수 시간보다 더 빠르게 증가한다. 따라서 <span class="arithmatex">\(n\)</span>이 클 때는 이 역시 감당하기 어렵다.</p>
<h2 id="235">2.3.5   최악, 최선, 평균 시간 복잡도<a class="headerlink" href="#235" title="고유 링크"></a></h2>
<p><strong>알고리즘의 시간 효율은 고정되어 있지 않고 입력 데이터의 분포에 따라 달라지는 경우가 많다</strong>. 길이가 <span class="arithmatex">\(n\)</span>인 배열 <code>nums</code>를 입력받는다고 하자. <code>nums</code>에는 <span class="arithmatex">\(1\)</span>부터 <span class="arithmatex">\(n\)</span>까지의 수가 한 번씩 들어 있으며, 원소 순서는 무작위로 섞여 있다. 목표는 원소 <span class="arithmatex">\(1\)</span>의 인덱스를 반환하는 것이다. 여기서 다음과 같은 결론을 얻는다.</p>
<ul>
<li><code>nums = [?, ?, ..., 1]</code>, 즉 마지막 원소가 <span class="arithmatex">\(1\)</span>이면 배열 전체를 순회해야 하므로 <strong>최악 시간 복잡도 <span class="arithmatex">\(O(n)\)</span>에 도달한다</strong>.</li>
<li><code>nums = [1, ?, ?, ...]</code>, 즉 첫 번째 원소가 <span class="arithmatex">\(1\)</span>이면 배열 길이에 관계없이 더 순회할 필요가 없으므로 <strong>최선 시간 복잡도 <span class="arithmatex">\(\Omega(1)\)</span>에 도달한다</strong>.</li>
</ul>
<p>‘최악 시간 복잡도’는 함수의 점근적 상한에 해당하며 빅 <span class="arithmatex">\(O\)</span> 표기법으로 나타낸다. 이에 대응하여 ‘최선 시간 복잡도’는 함수의 점근적 하한에 해당하며 <span class="arithmatex">\(\Omega\)</span> 표기법으로 나타낸다.</p>
<div class="tabbed-set tabbed-alternate" data-tabs="16:13"><input checked="checked" id="__tabbed_16_1" name="__tabbed_16" type="radio"/><input id="__tabbed_16_2" name="__tabbed_16" type="radio"/><input id="__tabbed_16_3" name="__tabbed_16" type="radio"/><input id="__tabbed_16_4" name="__tabbed_16" type="radio"/><input id="__tabbed_16_5" name="__tabbed_16" type="radio"/><input id="__tabbed_16_6" name="__tabbed_16" type="radio"/><input id="__tabbed_16_7" name="__tabbed_16" type="radio"/><input id="__tabbed_16_8" name="__tabbed_16" type="radio"/><input id="__tabbed_16_9" name="__tabbed_16" type="radio"/><input id="__tabbed_16_10" name="__tabbed_16" type="radio"/><input id="__tabbed_16_11" name="__tabbed_16" type="radio"/><input id="__tabbed_16_12" name="__tabbed_16" type="radio"/><input id="__tabbed_16_13" name="__tabbed_16" type="radio"/><div class="tabbed-labels"><label for="__tabbed_16_1">Python</label><label for="__tabbed_16_2">C++</label><label for="__tabbed_16_3">Java</label><label for="__tabbed_16_4">C#</label><label for="__tabbed_16_5">Go</label><label for="__tabbed_16_6">Swift</label><label for="__tabbed_16_7">JS</label><label for="__tabbed_16_8">TS</label><label for="__tabbed_16_9">Dart</label><label for="__tabbed_16_10">Rust</label><label for="__tabbed_16_11">C</label><label for="__tabbed_16_12">Kotlin</label><label for="__tabbed_16_13">Ruby</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.py</span><pre><span></span><code><a href="#__codelineno-195-1" id="__codelineno-195-1" name="__codelineno-195-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">random_numbers</span><span class="p">(</span><span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">]:</span>
<a href="#__codelineno-195-2" id="__codelineno-195-2" name="__codelineno-195-2"></a><span class="w"> </span><span class="sd">"""원소가 1, 2, ..., n이며 순서가 섞인 배열 생성"""</span>
<a href="#__codelineno-195-3" id="__codelineno-195-3" name="__codelineno-195-3"></a> <span class="c1"># 배열 nums =: 1, 2, 3, ..., n을 생성한다</span>
<a href="#__codelineno-195-4" id="__codelineno-195-4" name="__codelineno-195-4"></a> <span class="n">nums</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)]</span>
<a href="#__codelineno-195-5" id="__codelineno-195-5" name="__codelineno-195-5"></a> <span class="c1"># 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-195-6" id="__codelineno-195-6" name="__codelineno-195-6"></a> <span class="n">random</span><span class="o">.</span><span class="n">shuffle</span><span class="p">(</span><span class="n">nums</span><span class="p">)</span>
<a href="#__codelineno-195-7" id="__codelineno-195-7" name="__codelineno-195-7"></a> <span class="k">return</span> <span class="n">nums</span>
<a href="#__codelineno-195-8" id="__codelineno-195-8" name="__codelineno-195-8"></a>
<a href="#__codelineno-195-9" id="__codelineno-195-9" name="__codelineno-195-9"></a><span class="k">def</span><span class="w"> </span><span class="nf">find_one</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<a href="#__codelineno-195-10" id="__codelineno-195-10" name="__codelineno-195-10"></a><span class="w"> </span><span class="sd">"""배열 nums에서 숫자 1이 있는 인덱스 탐색"""</span>
<a href="#__codelineno-195-11" id="__codelineno-195-11" name="__codelineno-195-11"></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">nums</span><span class="p">)):</span>
<a href="#__codelineno-195-12" id="__codelineno-195-12" name="__codelineno-195-12"></a> <span class="c1"># 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-195-13" id="__codelineno-195-13" name="__codelineno-195-13"></a> <span class="c1"># 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-195-14" id="__codelineno-195-14" name="__codelineno-195-14"></a> <span class="k">if</span> <span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<a href="#__codelineno-195-15" id="__codelineno-195-15" name="__codelineno-195-15"></a> <span class="k">return</span> <span class="n">i</span>
<a href="#__codelineno-195-16" id="__codelineno-195-16" name="__codelineno-195-16"></a> <span class="k">return</span> <span class="o">-</span><span class="mi">1</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.cpp</span><pre><span></span><code><a href="#__codelineno-196-1" id="__codelineno-196-1" name="__codelineno-196-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-196-2" id="__codelineno-196-2" name="__codelineno-196-2"></a><span class="n">vector</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="n">randomNumbers</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-196-3" id="__codelineno-196-3" name="__codelineno-196-3"></a><span class="w"> </span><span class="n">vector</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="p">(</span><span class="n">n</span><span class="p">);</span>
<a href="#__codelineno-196-4" id="__codelineno-196-4" name="__codelineno-196-4"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-196-5" id="__codelineno-196-5" name="__codelineno-196-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-196-6" id="__codelineno-196-6" name="__codelineno-196-6"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-196-7" id="__codelineno-196-7" name="__codelineno-196-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-196-8" id="__codelineno-196-8" name="__codelineno-196-8"></a><span class="w"> </span><span class="c1">// 시스템 시간으로 난수 시드를 생성한다</span>
<a href="#__codelineno-196-9" id="__codelineno-196-9" name="__codelineno-196-9"></a><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="n">seed</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">chrono</span><span class="o">::</span><span class="n">system_clock</span><span class="o">::</span><span class="n">now</span><span class="p">().</span><span class="n">time_since_epoch</span><span class="p">().</span><span class="n">count</span><span class="p">();</span>
<a href="#__codelineno-196-10" id="__codelineno-196-10" name="__codelineno-196-10"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-196-11" id="__codelineno-196-11" name="__codelineno-196-11"></a><span class="w"> </span><span class="n">shuffle</span><span class="p">(</span><span class="n">nums</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">end</span><span class="p">(),</span><span class="w"> </span><span class="n">default_random_engine</span><span class="p">(</span><span class="n">seed</span><span class="p">));</span>
<a href="#__codelineno-196-12" id="__codelineno-196-12" name="__codelineno-196-12"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">nums</span><span class="p">;</span>
<a href="#__codelineno-196-13" id="__codelineno-196-13" name="__codelineno-196-13"></a><span class="p">}</span>
<a href="#__codelineno-196-14" id="__codelineno-196-14" name="__codelineno-196-14"></a>
<a href="#__codelineno-196-15" id="__codelineno-196-15" name="__codelineno-196-15"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-196-16" id="__codelineno-196-16" name="__codelineno-196-16"></a><span class="kt">int</span><span class="w"> </span><span class="n">findOne</span><span class="p">(</span><span class="n">vector</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="o">&amp;</span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-196-17" id="__codelineno-196-17" name="__codelineno-196-17"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">size</span><span class="p">();</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-196-18" id="__codelineno-196-18" name="__codelineno-196-18"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-196-19" id="__codelineno-196-19" name="__codelineno-196-19"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-196-20" id="__codelineno-196-20" name="__codelineno-196-20"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-196-21" id="__codelineno-196-21" name="__codelineno-196-21"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">i</span><span class="p">;</span>
<a href="#__codelineno-196-22" id="__codelineno-196-22" name="__codelineno-196-22"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-196-23" id="__codelineno-196-23" name="__codelineno-196-23"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span>
<a href="#__codelineno-196-24" id="__codelineno-196-24" name="__codelineno-196-24"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.java</span><pre><span></span><code><a href="#__codelineno-197-1" id="__codelineno-197-1" name="__codelineno-197-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-197-2" id="__codelineno-197-2" name="__codelineno-197-2"></a><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="nf">randomNumbers</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-197-3" id="__codelineno-197-3" name="__codelineno-197-3"></a><span class="w"> </span><span class="n">Integer</span><span class="o">[]</span><span class="w"> </span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Integer</span><span class="o">[</span><span class="n">n</span><span class="o">]</span><span class="p">;</span>
<a href="#__codelineno-197-4" id="__codelineno-197-4" name="__codelineno-197-4"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-197-5" id="__codelineno-197-5" name="__codelineno-197-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-197-6" id="__codelineno-197-6" name="__codelineno-197-6"></a><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-197-7" id="__codelineno-197-7" name="__codelineno-197-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-197-8" id="__codelineno-197-8" name="__codelineno-197-8"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-197-9" id="__codelineno-197-9" name="__codelineno-197-9"></a><span class="w"> </span><span class="n">Collections</span><span class="p">.</span><span class="na">shuffle</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="na">asList</span><span class="p">(</span><span class="n">nums</span><span class="p">));</span>
<a href="#__codelineno-197-10" id="__codelineno-197-10" name="__codelineno-197-10"></a><span class="w"> </span><span class="c1">// Integer[] -&gt; int[]</span>
<a href="#__codelineno-197-11" id="__codelineno-197-11" name="__codelineno-197-11"></a><span class="w"> </span><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">res</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">int</span><span class="o">[</span><span class="n">n</span><span class="o">]</span><span class="p">;</span>
<a href="#__codelineno-197-12" id="__codelineno-197-12" name="__codelineno-197-12"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-197-13" id="__codelineno-197-13" name="__codelineno-197-13"></a><span class="w"> </span><span class="n">res</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="p">;</span>
<a href="#__codelineno-197-14" id="__codelineno-197-14" name="__codelineno-197-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-197-15" id="__codelineno-197-15" name="__codelineno-197-15"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">res</span><span class="p">;</span>
<a href="#__codelineno-197-16" id="__codelineno-197-16" name="__codelineno-197-16"></a><span class="p">}</span>
<a href="#__codelineno-197-17" id="__codelineno-197-17" name="__codelineno-197-17"></a>
<a href="#__codelineno-197-18" id="__codelineno-197-18" name="__codelineno-197-18"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-197-19" id="__codelineno-197-19" name="__codelineno-197-19"></a><span class="kt">int</span><span class="w"> </span><span class="nf">findOne</span><span class="p">(</span><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-197-20" id="__codelineno-197-20" name="__codelineno-197-20"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="na">length</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-197-21" id="__codelineno-197-21" name="__codelineno-197-21"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-197-22" id="__codelineno-197-22" name="__codelineno-197-22"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-197-23" id="__codelineno-197-23" name="__codelineno-197-23"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-197-24" id="__codelineno-197-24" name="__codelineno-197-24"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">i</span><span class="p">;</span>
<a href="#__codelineno-197-25" id="__codelineno-197-25" name="__codelineno-197-25"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-197-26" id="__codelineno-197-26" name="__codelineno-197-26"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-197-27" id="__codelineno-197-27" name="__codelineno-197-27"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.cs</span><pre><span></span><code><a href="#__codelineno-198-1" id="__codelineno-198-1" name="__codelineno-198-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-198-2" id="__codelineno-198-2" name="__codelineno-198-2"></a><span class="kt">int</span><span class="p">[]</span><span class="w"> </span><span class="nf">RandomNumbers</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-198-3" id="__codelineno-198-3" name="__codelineno-198-3"></a><span class="w"> </span><span class="kt">int</span><span class="p">[]</span><span class="w"> </span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">int</span><span class="p">[</span><span class="n">n</span><span class="p">];</span>
<a href="#__codelineno-198-4" id="__codelineno-198-4" name="__codelineno-198-4"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-198-5" id="__codelineno-198-5" name="__codelineno-198-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-198-6" id="__codelineno-198-6" name="__codelineno-198-6"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-198-7" id="__codelineno-198-7" name="__codelineno-198-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-198-8" id="__codelineno-198-8" name="__codelineno-198-8"></a>
<a href="#__codelineno-198-9" id="__codelineno-198-9" name="__codelineno-198-9"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-198-10" id="__codelineno-198-10" name="__codelineno-198-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">Length</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-198-11" id="__codelineno-198-11" name="__codelineno-198-11"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">index</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Random</span><span class="p">().</span><span class="n">Next</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">Length</span><span class="p">);</span>
<a href="#__codelineno-198-12" id="__codelineno-198-12" name="__codelineno-198-12"></a><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">],</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">index</span><span class="p">])</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">index</span><span class="p">],</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
<a href="#__codelineno-198-13" id="__codelineno-198-13" name="__codelineno-198-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-198-14" id="__codelineno-198-14" name="__codelineno-198-14"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">nums</span><span class="p">;</span>
<a href="#__codelineno-198-15" id="__codelineno-198-15" name="__codelineno-198-15"></a><span class="p">}</span>
<a href="#__codelineno-198-16" id="__codelineno-198-16" name="__codelineno-198-16"></a>
<a href="#__codelineno-198-17" id="__codelineno-198-17" name="__codelineno-198-17"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-198-18" id="__codelineno-198-18" name="__codelineno-198-18"></a><span class="kt">int</span><span class="w"> </span><span class="nf">FindOne</span><span class="p">(</span><span class="kt">int</span><span class="p">[]</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-198-19" id="__codelineno-198-19" name="__codelineno-198-19"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">Length</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-198-20" id="__codelineno-198-20" name="__codelineno-198-20"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-198-21" id="__codelineno-198-21" name="__codelineno-198-21"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-198-22" id="__codelineno-198-22" name="__codelineno-198-22"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-198-23" id="__codelineno-198-23" name="__codelineno-198-23"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">i</span><span class="p">;</span>
<a href="#__codelineno-198-24" id="__codelineno-198-24" name="__codelineno-198-24"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-198-25" id="__codelineno-198-25" name="__codelineno-198-25"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-198-26" id="__codelineno-198-26" name="__codelineno-198-26"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.go</span><pre><span></span><code><a href="#__codelineno-199-1" id="__codelineno-199-1" name="__codelineno-199-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-199-2" id="__codelineno-199-2" name="__codelineno-199-2"></a><span class="kd">func</span><span class="w"> </span><span class="nx">randomNumbers</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">[]</span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-199-3" id="__codelineno-199-3" name="__codelineno-199-3"></a><span class="w"> </span><span class="nx">nums</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nb">make</span><span class="p">([]</span><span class="kt">int</span><span class="p">,</span><span class="w"> </span><span class="nx">n</span><span class="p">)</span>
<a href="#__codelineno-199-4" id="__codelineno-199-4" name="__codelineno-199-4"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-199-5" id="__codelineno-199-5" name="__codelineno-199-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-199-6" id="__codelineno-199-6" name="__codelineno-199-6"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-199-7" id="__codelineno-199-7" name="__codelineno-199-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-199-8" id="__codelineno-199-8" name="__codelineno-199-8"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-199-9" id="__codelineno-199-9" name="__codelineno-199-9"></a><span class="w"> </span><span class="nx">rand</span><span class="p">.</span><span class="nx">Shuffle</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nx">nums</span><span class="p">),</span><span class="w"> </span><span class="kd">func</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-199-10" id="__codelineno-199-10" name="__codelineno-199-10"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">j</span><span class="p">],</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span>
<a href="#__codelineno-199-11" id="__codelineno-199-11" name="__codelineno-199-11"></a><span class="w"> </span><span class="p">})</span>
<a href="#__codelineno-199-12" id="__codelineno-199-12" name="__codelineno-199-12"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">nums</span>
<a href="#__codelineno-199-13" id="__codelineno-199-13" name="__codelineno-199-13"></a><span class="p">}</span>
<a href="#__codelineno-199-14" id="__codelineno-199-14" name="__codelineno-199-14"></a>
<a href="#__codelineno-199-15" id="__codelineno-199-15" name="__codelineno-199-15"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-199-16" id="__codelineno-199-16" name="__codelineno-199-16"></a><span class="kd">func</span><span class="w"> </span><span class="nx">findOne</span><span class="p">(</span><span class="nx">nums</span><span class="w"> </span><span class="p">[]</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-199-17" id="__codelineno-199-17" name="__codelineno-199-17"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nb">len</span><span class="p">(</span><span class="nx">nums</span><span class="p">);</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-199-18" id="__codelineno-199-18" name="__codelineno-199-18"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-199-19" id="__codelineno-199-19" name="__codelineno-199-19"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-199-20" id="__codelineno-199-20" name="__codelineno-199-20"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-199-21" id="__codelineno-199-21" name="__codelineno-199-21"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">i</span>
<a href="#__codelineno-199-22" id="__codelineno-199-22" name="__codelineno-199-22"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-199-23" id="__codelineno-199-23" name="__codelineno-199-23"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-199-24" id="__codelineno-199-24" name="__codelineno-199-24"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span>
<a href="#__codelineno-199-25" id="__codelineno-199-25" name="__codelineno-199-25"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.swift</span><pre><span></span><code><a href="#__codelineno-200-1" id="__codelineno-200-1" name="__codelineno-200-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-200-2" id="__codelineno-200-2" name="__codelineno-200-2"></a><span class="kd">func</span><span class="w"> </span><span class="nf">randomNumbers</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="nb">Int</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="p">[</span><span class="nb">Int</span><span class="p">]</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-200-3" id="__codelineno-200-3" name="__codelineno-200-3"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-200-4" id="__codelineno-200-4" name="__codelineno-200-4"></a><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nv">nums</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-200-5" id="__codelineno-200-5" name="__codelineno-200-5"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-200-6" id="__codelineno-200-6" name="__codelineno-200-6"></a><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">shuffle</span><span class="p">()</span>
<a href="#__codelineno-200-7" id="__codelineno-200-7" name="__codelineno-200-7"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">nums</span>
<a href="#__codelineno-200-8" id="__codelineno-200-8" name="__codelineno-200-8"></a><span class="p">}</span>
<a href="#__codelineno-200-9" id="__codelineno-200-9" name="__codelineno-200-9"></a>
<a href="#__codelineno-200-10" id="__codelineno-200-10" name="__codelineno-200-10"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-200-11" id="__codelineno-200-11" name="__codelineno-200-11"></a><span class="kd">func</span><span class="w"> </span><span class="nf">findOne</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="nb">Int</span><span class="p">])</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-200-12" id="__codelineno-200-12" name="__codelineno-200-12"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="bp">indices</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-200-13" id="__codelineno-200-13" name="__codelineno-200-13"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-200-14" id="__codelineno-200-14" name="__codelineno-200-14"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-200-15" id="__codelineno-200-15" name="__codelineno-200-15"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-200-16" id="__codelineno-200-16" name="__codelineno-200-16"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">i</span>
<a href="#__codelineno-200-17" id="__codelineno-200-17" name="__codelineno-200-17"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-200-18" id="__codelineno-200-18" name="__codelineno-200-18"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-200-19" id="__codelineno-200-19" name="__codelineno-200-19"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span>
<a href="#__codelineno-200-20" id="__codelineno-200-20" name="__codelineno-200-20"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.js</span><pre><span></span><code><a href="#__codelineno-201-1" id="__codelineno-201-1" name="__codelineno-201-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-201-2" id="__codelineno-201-2" name="__codelineno-201-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">randomNumbers</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-201-3" id="__codelineno-201-3" name="__codelineno-201-3"></a><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="nx">n</span><span class="p">);</span>
<a href="#__codelineno-201-4" id="__codelineno-201-4" name="__codelineno-201-4"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-201-5" id="__codelineno-201-5" name="__codelineno-201-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-201-6" id="__codelineno-201-6" name="__codelineno-201-6"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-201-7" id="__codelineno-201-7" name="__codelineno-201-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-201-8" id="__codelineno-201-8" name="__codelineno-201-8"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-201-9" id="__codelineno-201-9" name="__codelineno-201-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-201-10" id="__codelineno-201-10" name="__codelineno-201-10"></a><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">));</span>
<a href="#__codelineno-201-11" id="__codelineno-201-11" name="__codelineno-201-11"></a><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
<a href="#__codelineno-201-12" id="__codelineno-201-12" name="__codelineno-201-12"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">r</span><span class="p">];</span>
<a href="#__codelineno-201-13" id="__codelineno-201-13" name="__codelineno-201-13"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">r</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">temp</span><span class="p">;</span>
<a href="#__codelineno-201-14" id="__codelineno-201-14" name="__codelineno-201-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-201-15" id="__codelineno-201-15" name="__codelineno-201-15"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">nums</span><span class="p">;</span>
<a href="#__codelineno-201-16" id="__codelineno-201-16" name="__codelineno-201-16"></a><span class="p">}</span>
<a href="#__codelineno-201-17" id="__codelineno-201-17" name="__codelineno-201-17"></a>
<a href="#__codelineno-201-18" id="__codelineno-201-18" name="__codelineno-201-18"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-201-19" id="__codelineno-201-19" name="__codelineno-201-19"></a><span class="kd">function</span><span class="w"> </span><span class="nx">findOne</span><span class="p">(</span><span class="nx">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-201-20" id="__codelineno-201-20" name="__codelineno-201-20"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">nums</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-201-21" id="__codelineno-201-21" name="__codelineno-201-21"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-201-22" id="__codelineno-201-22" name="__codelineno-201-22"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-201-23" id="__codelineno-201-23" name="__codelineno-201-23"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-201-24" id="__codelineno-201-24" name="__codelineno-201-24"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span>
<a href="#__codelineno-201-25" id="__codelineno-201-25" name="__codelineno-201-25"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-201-26" id="__codelineno-201-26" name="__codelineno-201-26"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-201-27" id="__codelineno-201-27" name="__codelineno-201-27"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-201-28" id="__codelineno-201-28" name="__codelineno-201-28"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.ts</span><pre><span></span><code><a href="#__codelineno-202-1" id="__codelineno-202-1" name="__codelineno-202-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-202-2" id="__codelineno-202-2" name="__codelineno-202-2"></a><span class="kd">function</span><span class="w"> </span><span class="nx">randomNumbers</span><span class="p">(</span><span class="nx">n</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[]</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-202-3" id="__codelineno-202-3" name="__codelineno-202-3"></a><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="nx">n</span><span class="p">);</span>
<a href="#__codelineno-202-4" id="__codelineno-202-4" name="__codelineno-202-4"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-202-5" id="__codelineno-202-5" name="__codelineno-202-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-202-6" id="__codelineno-202-6" name="__codelineno-202-6"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-202-7" id="__codelineno-202-7" name="__codelineno-202-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-202-8" id="__codelineno-202-8" name="__codelineno-202-8"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-202-9" id="__codelineno-202-9" name="__codelineno-202-9"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-202-10" id="__codelineno-202-10" name="__codelineno-202-10"></a><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">));</span>
<a href="#__codelineno-202-11" id="__codelineno-202-11" name="__codelineno-202-11"></a><span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
<a href="#__codelineno-202-12" id="__codelineno-202-12" name="__codelineno-202-12"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">r</span><span class="p">];</span>
<a href="#__codelineno-202-13" id="__codelineno-202-13" name="__codelineno-202-13"></a><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">r</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">temp</span><span class="p">;</span>
<a href="#__codelineno-202-14" id="__codelineno-202-14" name="__codelineno-202-14"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-202-15" id="__codelineno-202-15" name="__codelineno-202-15"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">nums</span><span class="p">;</span>
<a href="#__codelineno-202-16" id="__codelineno-202-16" name="__codelineno-202-16"></a><span class="p">}</span>
<a href="#__codelineno-202-17" id="__codelineno-202-17" name="__codelineno-202-17"></a>
<a href="#__codelineno-202-18" id="__codelineno-202-18" name="__codelineno-202-18"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-202-19" id="__codelineno-202-19" name="__codelineno-202-19"></a><span class="kd">function</span><span class="w"> </span><span class="nx">findOne</span><span class="p">(</span><span class="nx">nums</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[])</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-202-20" id="__codelineno-202-20" name="__codelineno-202-20"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">nums</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-202-21" id="__codelineno-202-21" name="__codelineno-202-21"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-202-22" id="__codelineno-202-22" name="__codelineno-202-22"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-202-23" id="__codelineno-202-23" name="__codelineno-202-23"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-202-24" id="__codelineno-202-24" name="__codelineno-202-24"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span>
<a href="#__codelineno-202-25" id="__codelineno-202-25" name="__codelineno-202-25"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-202-26" id="__codelineno-202-26" name="__codelineno-202-26"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-202-27" id="__codelineno-202-27" name="__codelineno-202-27"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">;</span>
<a href="#__codelineno-202-28" id="__codelineno-202-28" name="__codelineno-202-28"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.dart</span><pre><span></span><code><a href="#__codelineno-203-1" id="__codelineno-203-1" name="__codelineno-203-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-203-2" id="__codelineno-203-2" name="__codelineno-203-2"></a><span class="n">List</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="n">randomNumbers</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-203-3" id="__codelineno-203-3" name="__codelineno-203-3"></a><span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">List</span><span class="p">.</span><span class="n">filled</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">);</span>
<a href="#__codelineno-203-4" id="__codelineno-203-4" name="__codelineno-203-4"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-203-5" id="__codelineno-203-5" name="__codelineno-203-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-203-6" id="__codelineno-203-6" name="__codelineno-203-6"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span>
<a href="#__codelineno-203-7" id="__codelineno-203-7" name="__codelineno-203-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-203-8" id="__codelineno-203-8" name="__codelineno-203-8"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-203-9" id="__codelineno-203-9" name="__codelineno-203-9"></a><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">shuffle</span><span class="p">();</span>
<a href="#__codelineno-203-10" id="__codelineno-203-10" name="__codelineno-203-10"></a>
<a href="#__codelineno-203-11" id="__codelineno-203-11" name="__codelineno-203-11"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">nums</span><span class="p">;</span>
<a href="#__codelineno-203-12" id="__codelineno-203-12" name="__codelineno-203-12"></a><span class="p">}</span>
<a href="#__codelineno-203-13" id="__codelineno-203-13" name="__codelineno-203-13"></a>
<a href="#__codelineno-203-14" id="__codelineno-203-14" name="__codelineno-203-14"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-203-15" id="__codelineno-203-15" name="__codelineno-203-15"></a><span class="kt">int</span><span class="w"> </span><span class="n">findOne</span><span class="p">(</span><span class="n">List</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="n">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-203-16" id="__codelineno-203-16" name="__codelineno-203-16"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">var</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">length</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-203-17" id="__codelineno-203-17" name="__codelineno-203-17"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-203-18" id="__codelineno-203-18" name="__codelineno-203-18"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-203-19" id="__codelineno-203-19" name="__codelineno-203-19"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">i</span><span class="p">;</span>
<a href="#__codelineno-203-20" id="__codelineno-203-20" name="__codelineno-203-20"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-203-21" id="__codelineno-203-21" name="__codelineno-203-21"></a>
<a href="#__codelineno-203-22" id="__codelineno-203-22" name="__codelineno-203-22"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="m">1</span><span class="p">;</span>
<a href="#__codelineno-203-23" id="__codelineno-203-23" name="__codelineno-203-23"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.rs</span><pre><span></span><code><a href="#__codelineno-204-1" id="__codelineno-204-1" name="__codelineno-204-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-204-2" id="__codelineno-204-2" name="__codelineno-204-2"></a><span class="k">fn</span><span class="w"> </span><span class="nf">random_numbers</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Vec</span><span class="o">&lt;</span><span class="kt">i32</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-204-3" id="__codelineno-204-3" name="__codelineno-204-3"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-204-4" id="__codelineno-204-4" name="__codelineno-204-4"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="o">..=</span><span class="n">n</span><span class="p">).</span><span class="n">collect</span><span class="p">::</span><span class="o">&lt;</span><span class="nb">Vec</span><span class="o">&lt;</span><span class="kt">i32</span><span class="o">&gt;&gt;</span><span class="p">();</span>
<a href="#__codelineno-204-5" id="__codelineno-204-5" name="__codelineno-204-5"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-204-6" id="__codelineno-204-6" name="__codelineno-204-6"></a><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">shuffle</span><span class="p">(</span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">thread_rng</span><span class="p">());</span>
<a href="#__codelineno-204-7" id="__codelineno-204-7" name="__codelineno-204-7"></a><span class="w"> </span><span class="n">nums</span>
<a href="#__codelineno-204-8" id="__codelineno-204-8" name="__codelineno-204-8"></a><span class="p">}</span>
<a href="#__codelineno-204-9" id="__codelineno-204-9" name="__codelineno-204-9"></a>
<a href="#__codelineno-204-10" id="__codelineno-204-10" name="__codelineno-204-10"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-204-11" id="__codelineno-204-11" name="__codelineno-204-11"></a><span class="k">fn</span><span class="w"> </span><span class="nf">find_one</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </span><span class="kp">&amp;</span><span class="p">[</span><span class="kt">i32</span><span class="p">])</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nb">Option</span><span class="o">&lt;</span><span class="kt">usize</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-204-12" id="__codelineno-204-12" name="__codelineno-204-12"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">nums</span><span class="p">.</span><span class="n">len</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-204-13" id="__codelineno-204-13" name="__codelineno-204-13"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-204-14" id="__codelineno-204-14" name="__codelineno-204-14"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-204-15" id="__codelineno-204-15" name="__codelineno-204-15"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-204-16" id="__codelineno-204-16" name="__codelineno-204-16"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">Some</span><span class="p">(</span><span class="n">i</span><span class="p">);</span>
<a href="#__codelineno-204-17" id="__codelineno-204-17" name="__codelineno-204-17"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-204-18" id="__codelineno-204-18" name="__codelineno-204-18"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-204-19" id="__codelineno-204-19" name="__codelineno-204-19"></a><span class="w"> </span><span class="nb">None</span>
<a href="#__codelineno-204-20" id="__codelineno-204-20" name="__codelineno-204-20"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.c</span><pre><span></span><code><a href="#__codelineno-205-1" id="__codelineno-205-1" name="__codelineno-205-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-205-2" id="__codelineno-205-2" name="__codelineno-205-2"></a><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="nf">randomNumbers</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-205-3" id="__codelineno-205-3" name="__codelineno-205-3"></a><span class="w"> </span><span class="c1">// 힙 메모리를 할당한다(원소 개수가 n이고 원소 타입이 int인 1차원 가변 길이 배열을 생성한다)</span>
<a href="#__codelineno-205-4" id="__codelineno-205-4" name="__codelineno-205-4"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">malloc</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="kt">int</span><span class="p">));</span>
<a href="#__codelineno-205-5" id="__codelineno-205-5" name="__codelineno-205-5"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-205-6" id="__codelineno-205-6" name="__codelineno-205-6"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-205-7" id="__codelineno-205-7" name="__codelineno-205-7"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a href="#__codelineno-205-8" id="__codelineno-205-8" name="__codelineno-205-8"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-205-9" id="__codelineno-205-9" name="__codelineno-205-9"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-205-10" id="__codelineno-205-10" name="__codelineno-205-10"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">--</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-205-11" id="__codelineno-205-11" name="__codelineno-205-11"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">rand</span><span class="p">()</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<a href="#__codelineno-205-12" id="__codelineno-205-12" name="__codelineno-205-12"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
<a href="#__codelineno-205-13" id="__codelineno-205-13" name="__codelineno-205-13"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">];</span>
<a href="#__codelineno-205-14" id="__codelineno-205-14" name="__codelineno-205-14"></a><span class="w"> </span><span class="n">nums</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">temp</span><span class="p">;</span>
<a href="#__codelineno-205-15" id="__codelineno-205-15" name="__codelineno-205-15"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-205-16" id="__codelineno-205-16" name="__codelineno-205-16"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">nums</span><span class="p">;</span>
<a href="#__codelineno-205-17" id="__codelineno-205-17" name="__codelineno-205-17"></a><span class="p">}</span>
<a href="#__codelineno-205-18" id="__codelineno-205-18" name="__codelineno-205-18"></a>
<a href="#__codelineno-205-19" id="__codelineno-205-19" name="__codelineno-205-19"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-205-20" id="__codelineno-205-20" name="__codelineno-205-20"></a><span class="kt">int</span><span class="w"> </span><span class="nf">findOne</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">nums</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-205-21" id="__codelineno-205-21" name="__codelineno-205-21"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-205-22" id="__codelineno-205-22" name="__codelineno-205-22"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-205-23" id="__codelineno-205-23" name="__codelineno-205-23"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-205-24" id="__codelineno-205-24" name="__codelineno-205-24"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<a href="#__codelineno-205-25" id="__codelineno-205-25" name="__codelineno-205-25"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">i</span><span class="p">;</span>
<a href="#__codelineno-205-26" id="__codelineno-205-26" name="__codelineno-205-26"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-205-27" id="__codelineno-205-27" name="__codelineno-205-27"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span>
<a href="#__codelineno-205-28" id="__codelineno-205-28" name="__codelineno-205-28"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.kt</span><pre><span></span><code><a href="#__codelineno-206-1" id="__codelineno-206-1" name="__codelineno-206-1"></a><span class="cm">/* 원소가 { 1, 2, ..., n }이며 순서가 섞인 배열 생성 */</span>
<a href="#__codelineno-206-2" id="__codelineno-206-2" name="__codelineno-206-2"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">randomNumbers</span><span class="p">(</span><span class="n">n</span><span class="p">:</span><span class="w"> </span><span class="kt">Int</span><span class="p">):</span><span class="w"> </span><span class="n">Array</span><span class="o">&lt;</span><span class="kt">Int?</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-206-3" id="__codelineno-206-3" name="__codelineno-206-3"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">IntArray</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-206-4" id="__codelineno-206-4" name="__codelineno-206-4"></a><span class="w"> </span><span class="c1">// 배열 nums = { 1, 2, 3, ..., n }을 생성한다</span>
<a href="#__codelineno-206-5" id="__codelineno-206-5" name="__codelineno-206-5"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-206-6" id="__codelineno-206-6" name="__codelineno-206-6"></a><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span>
<a href="#__codelineno-206-7" id="__codelineno-206-7" name="__codelineno-206-7"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-206-8" id="__codelineno-206-8" name="__codelineno-206-8"></a><span class="w"> </span><span class="c1">// 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-206-9" id="__codelineno-206-9" name="__codelineno-206-9"></a><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="na">shuffle</span><span class="p">()</span>
<a href="#__codelineno-206-10" id="__codelineno-206-10" name="__codelineno-206-10"></a><span class="w"> </span><span class="kd">val</span><span class="w"> </span><span class="nv">res</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">arrayOfNulls</span><span class="o">&lt;</span><span class="kt">Int</span><span class="o">&gt;</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-206-11" id="__codelineno-206-11" name="__codelineno-206-11"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-206-12" id="__codelineno-206-12" name="__codelineno-206-12"></a><span class="w"> </span><span class="n">res</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">i</span><span class="o">]</span>
<a href="#__codelineno-206-13" id="__codelineno-206-13" name="__codelineno-206-13"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-206-14" id="__codelineno-206-14" name="__codelineno-206-14"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">res</span>
<a href="#__codelineno-206-15" id="__codelineno-206-15" name="__codelineno-206-15"></a><span class="p">}</span>
<a href="#__codelineno-206-16" id="__codelineno-206-16" name="__codelineno-206-16"></a>
<a href="#__codelineno-206-17" id="__codelineno-206-17" name="__codelineno-206-17"></a><span class="cm">/* 배열 nums에서 숫자 1이 있는 인덱스 탐색 */</span>
<a href="#__codelineno-206-18" id="__codelineno-206-18" name="__codelineno-206-18"></a><span class="kd">fun</span><span class="w"> </span><span class="nf">findOne</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </span><span class="n">Array</span><span class="o">&lt;</span><span class="kt">Int?</span><span class="o">&gt;</span><span class="p">):</span><span class="w"> </span><span class="kt">Int</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-206-19" id="__codelineno-206-19" name="__codelineno-206-19"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="na">indices</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<a href="#__codelineno-206-20" id="__codelineno-206-20" name="__codelineno-206-20"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-206-21" id="__codelineno-206-21" name="__codelineno-206-21"></a><span class="w"> </span><span class="c1">// 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-206-22" id="__codelineno-206-22" name="__codelineno-206-22"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">nums</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="m">1</span><span class="p">)</span>
<a href="#__codelineno-206-23" id="__codelineno-206-23" name="__codelineno-206-23"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">i</span>
<a href="#__codelineno-206-24" id="__codelineno-206-24" name="__codelineno-206-24"></a><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-206-25" id="__codelineno-206-25" name="__codelineno-206-25"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="m">1</span>
<a href="#__codelineno-206-26" id="__codelineno-206-26" name="__codelineno-206-26"></a><span class="p">}</span>
</code></pre></div>
</div>
<div class="tabbed-block">
<div class="highlight"><span class="filename">worst_best_time_complexity.rb</span><pre><span></span><code><a href="#__codelineno-207-1" id="__codelineno-207-1" name="__codelineno-207-1"></a><span class="c1">### 원소가 1, 2, ..., n이며 순서가 섞인 배열 생성 ###</span>
<a href="#__codelineno-207-2" id="__codelineno-207-2" name="__codelineno-207-2"></a><span class="k">def</span><span class="w"> </span><span class="nf">random_numbers</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<a href="#__codelineno-207-3" id="__codelineno-207-3" name="__codelineno-207-3"></a><span class="w"> </span><span class="c1"># 배열 nums =: 1, 2, 3, ..., n을 생성한다</span>
<a href="#__codelineno-207-4" id="__codelineno-207-4" name="__codelineno-207-4"></a><span class="w"> </span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="o">|</span><span class="n">i</span><span class="o">|</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">}</span>
<a href="#__codelineno-207-5" id="__codelineno-207-5" name="__codelineno-207-5"></a><span class="w"> </span><span class="c1"># 배열 원소를 무작위로 섞는다</span>
<a href="#__codelineno-207-6" id="__codelineno-207-6" name="__codelineno-207-6"></a><span class="w"> </span><span class="n">nums</span><span class="o">.</span><span class="n">shuffle!</span>
<a href="#__codelineno-207-7" id="__codelineno-207-7" name="__codelineno-207-7"></a><span class="k">end</span>
<a href="#__codelineno-207-8" id="__codelineno-207-8" name="__codelineno-207-8"></a>
<a href="#__codelineno-207-9" id="__codelineno-207-9" name="__codelineno-207-9"></a><span class="c1">### 배열 nums에서 숫자 1이 있는 인덱스 탐색 ###</span>
<a href="#__codelineno-207-10" id="__codelineno-207-10" name="__codelineno-207-10"></a><span class="k">def</span><span class="w"> </span><span class="nf">find_one</span><span class="p">(</span><span class="n">nums</span><span class="p">)</span>
<a href="#__codelineno-207-11" id="__codelineno-207-11" name="__codelineno-207-11"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">...</span><span class="n">nums</span><span class="o">.</span><span class="n">length</span>
<a href="#__codelineno-207-12" id="__codelineno-207-12" name="__codelineno-207-12"></a><span class="w"> </span><span class="c1"># 원소 1이 배열 맨 앞에 있으면 최선 시간 복잡도 O(1)에 도달한다</span>
<a href="#__codelineno-207-13" id="__codelineno-207-13" name="__codelineno-207-13"></a><span class="w"> </span><span class="c1"># 원소 1이 배열 맨 뒤에 있으면 최악 시간 복잡도 O(n)에 도달한다</span>
<a href="#__codelineno-207-14" id="__codelineno-207-14" name="__codelineno-207-14"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">nums</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span>
<a href="#__codelineno-207-15" id="__codelineno-207-15" name="__codelineno-207-15"></a><span class="w"> </span><span class="k">end</span>
<a href="#__codelineno-207-16" id="__codelineno-207-16" name="__codelineno-207-16"></a>
<a href="#__codelineno-207-17" id="__codelineno-207-17" name="__codelineno-207-17"></a><span class="w"> </span><span class="o">-</span><span class="mi">1</span>
<a href="#__codelineno-207-18" id="__codelineno-207-18" name="__codelineno-207-18"></a><span class="k">end</span>
</code></pre></div>
</div>
</div>
</div>
<details class="pythontutor">
<summary>코드 시각화</summary>
<p><div style="height: 549px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=import%20random%0A%0Adef%20random_numbers%28n%3A%20int%29%20-%3E%20list%5Bint%5D%3A%0A%20%20%20%20%22%22%22%EC%9B%90%EC%86%8C%EA%B0%80%201,%202,%20...,%20n%EC%9D%B4%EB%A9%B0%20%EC%88%9C%EC%84%9C%EA%B0%80%20%EC%84%9E%EC%9D%B8%20%EB%B0%B0%EC%97%B4%20%EC%83%9D%EC%84%B1%22%22%22%0A%20%20%20%20%23%20%EB%B0%B0%EC%97%B4%20nums%20%3D%3A%201,%202,%203,%20...,%20n%EC%9D%84%20%EC%83%9D%EC%84%B1%ED%95%9C%EB%8B%A4%0A%20%20%20%20nums%20%3D%20%5Bi%20for%20i%20in%20range%281,%20n%20%2B%201%29%5D%0A%20%20%20%20%23%20%EB%B0%B0%EC%97%B4%20%EC%9B%90%EC%86%8C%EB%A5%BC%20%EB%AC%B4%EC%9E%91%EC%9C%84%EB%A1%9C%20%EC%84%9E%EB%8A%94%EB%8B%A4%0A%20%20%20%20random.shuffle%28nums%29%0A%20%20%20%20return%20nums%0A%0Adef%20find_one%28nums%3A%20list%5Bint%5D%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EB%B0%B0%EC%97%B4%20nums%EC%97%90%EC%84%9C%20%EC%88%AB%EC%9E%90%201%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%EC%9D%B8%EB%8D%B1%EC%8A%A4%20%ED%83%90%EC%83%89%22%22%22%0A%20%20%20%20for%20i%20in%20range%28len%28nums%29%29%3A%0A%20%20%20%20%20%20%20%20%23%20%EC%9B%90%EC%86%8C%201%EC%9D%B4%20%EB%B0%B0%EC%97%B4%20%EB%A7%A8%20%EC%95%9E%EC%97%90%20%EC%9E%88%EC%9C%BC%EB%A9%B4%20%EC%B5%9C%EC%84%A0%20%EC%8B%9C%EA%B0%84%20%EB%B3%B5%EC%9E%A1%EB%8F%84%20O%281%29%EC%97%90%20%EB%8F%84%EB%8B%AC%ED%95%9C%EB%8B%A4%0A%20%20%20%20%20%20%20%20%23%20%EC%9B%90%EC%86%8C%201%EC%9D%B4%20%EB%B0%B0%EC%97%B4%20%EB%A7%A8%20%EB%92%A4%EC%97%90%20%EC%9E%88%EC%9C%BC%EB%A9%B4%20%EC%B5%9C%EC%95%85%20%EC%8B%9C%EA%B0%84%20%EB%B3%B5%EC%9E%A1%EB%8F%84%20O%28n%29%EC%97%90%20%EB%8F%84%EB%8B%AC%ED%95%9C%EB%8B%A4%0A%20%20%20%20%20%20%20%20if%20nums%5Bi%5D%20%3D%3D%201%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20i%0A%20%20%20%20return%20-1%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%2010%0A%20%20%20%20nums%20%3D%20random_numbers%28n%29%0A%20%20%20%20index%20%3D%20find_one%28nums%29%0A%20%20%20%20print%28%22%5Cn%EB%B0%B0%EC%97%B4%20%5B%201,%202,%20...,%20n%20%5D%EC%9D%84%20%EC%84%9E%EC%9D%80%20%EA%B2%B0%EA%B3%BC%20%3D%22,%20nums%29%0A%20%20%20%20print%28%22%EC%88%AB%EC%9E%90%201%EC%9D%98%20%EC%9D%B8%EB%8D%B1%EC%8A%A4%22,%20index%29&amp;codeDivHeight=472&amp;codeDivWidth=350&amp;cumulative=false&amp;curInstr=25&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" title="코드 시각화"> </iframe></div>
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=import%20random%0A%0Adef%20random_numbers%28n%3A%20int%29%20-%3E%20list%5Bint%5D%3A%0A%20%20%20%20%22%22%22%EC%9B%90%EC%86%8C%EA%B0%80%201,%202,%20...,%20n%EC%9D%B4%EB%A9%B0%20%EC%88%9C%EC%84%9C%EA%B0%80%20%EC%84%9E%EC%9D%B8%20%EB%B0%B0%EC%97%B4%20%EC%83%9D%EC%84%B1%22%22%22%0A%20%20%20%20%23%20%EB%B0%B0%EC%97%B4%20nums%20%3D%3A%201,%202,%203,%20...,%20n%EC%9D%84%20%EC%83%9D%EC%84%B1%ED%95%9C%EB%8B%A4%0A%20%20%20%20nums%20%3D%20%5Bi%20for%20i%20in%20range%281,%20n%20%2B%201%29%5D%0A%20%20%20%20%23%20%EB%B0%B0%EC%97%B4%20%EC%9B%90%EC%86%8C%EB%A5%BC%20%EB%AC%B4%EC%9E%91%EC%9C%84%EB%A1%9C%20%EC%84%9E%EB%8A%94%EB%8B%A4%0A%20%20%20%20random.shuffle%28nums%29%0A%20%20%20%20return%20nums%0A%0Adef%20find_one%28nums%3A%20list%5Bint%5D%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%EB%B0%B0%EC%97%B4%20nums%EC%97%90%EC%84%9C%20%EC%88%AB%EC%9E%90%201%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%EC%9D%B8%EB%8D%B1%EC%8A%A4%20%ED%83%90%EC%83%89%22%22%22%0A%20%20%20%20for%20i%20in%20range%28len%28nums%29%29%3A%0A%20%20%20%20%20%20%20%20%23%20%EC%9B%90%EC%86%8C%201%EC%9D%B4%20%EB%B0%B0%EC%97%B4%20%EB%A7%A8%20%EC%95%9E%EC%97%90%20%EC%9E%88%EC%9C%BC%EB%A9%B4%20%EC%B5%9C%EC%84%A0%20%EC%8B%9C%EA%B0%84%20%EB%B3%B5%EC%9E%A1%EB%8F%84%20O%281%29%EC%97%90%20%EB%8F%84%EB%8B%AC%ED%95%9C%EB%8B%A4%0A%20%20%20%20%20%20%20%20%23%20%EC%9B%90%EC%86%8C%201%EC%9D%B4%20%EB%B0%B0%EC%97%B4%20%EB%A7%A8%20%EB%92%A4%EC%97%90%20%EC%9E%88%EC%9C%BC%EB%A9%B4%20%EC%B5%9C%EC%95%85%20%EC%8B%9C%EA%B0%84%20%EB%B3%B5%EC%9E%A1%EB%8F%84%20O%28n%29%EC%97%90%20%EB%8F%84%EB%8B%AC%ED%95%9C%EB%8B%A4%0A%20%20%20%20%20%20%20%20if%20nums%5Bi%5D%20%3D%3D%201%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20i%0A%20%20%20%20return%20-1%0A%0A%22%22%22%EC%8B%A4%ED%96%89%20%EC%BD%94%EB%93%9C%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%2010%0A%20%20%20%20nums%20%3D%20random_numbers%28n%29%0A%20%20%20%20index%20%3D%20find_one%28nums%29%0A%20%20%20%20print%28%22%5Cn%EB%B0%B0%EC%97%B4%20%5B%201,%202,%20...,%20n%20%5D%EC%9D%84%20%EC%84%9E%EC%9D%80%20%EA%B2%B0%EA%B3%BC%20%3D%22,%20nums%29%0A%20%20%20%20print%28%22%EC%88%AB%EC%9E%90%201%EC%9D%98%20%EC%9D%B8%EB%8D%B1%EC%8A%A4%22,%20index%29&amp;codeDivHeight=800&amp;codeDivWidth=600&amp;cumulative=false&amp;curInstr=25&amp;heapPrimitives=nevernest&amp;origin=opt-frontend.js&amp;py=311&amp;rawInputLstJSON=%5B%5D&amp;textReferences=false" rel="noopener noreferrer" target="_blank">전체 화면 &gt;</a></div></p>
</details>
<p>실제로 최선 시간 복잡도는 거의 사용하지 않는다. 보통 최선의 경우가 발생할 확률이 매우 낮아 오해를 줄 수 있기 때문이다. <strong>최악 시간 복잡도는 효율의 안전한 기준을 제시하므로 더 실용적이며</strong>, 이를 통해 안심하고 알고리즘을 사용할 수 있다.</p>
<p>앞의 예에서 최악 시간 복잡도와 최선 시간 복잡도는 ‘특수한 데이터 분포’에서만 나타난다. 이러한 경우는 발생 확률이 낮을 수 있어 실제 실행 효율을 제대로 반영하지 못한다. 반면 <strong>평균 시간 복잡도는 무작위 입력 데이터에서의 알고리즘 실행 효율을 나타내며</strong>, <span class="arithmatex">\(\Theta\)</span> 표기법으로 표시한다.</p>
<p>일부 알고리즘은 무작위 데이터 분포에서의 평균 상황을 간단히 계산할 수 있다. 앞의 예에서는 입력 배열이 섞여 있으므로 원소 <span class="arithmatex">\(1\)</span>이 어느 인덱스에 있을 확률도 같다. 따라서 평균 반복 횟수는 배열 길이의 절반인 <span class="arithmatex">\(n / 2\)</span>이며, 평균 시간 복잡도는 <span class="arithmatex">\(\Theta(n / 2) = \Theta(n)\)</span>이다.</p>
<p>하지만 더 복잡한 알고리즘에서는 데이터 분포에 따른 전체 기댓값을 분석하기 어려워 평균 시간 복잡도를 구하기 힘든 경우가 많다. 이럴 때는 보통 최악 시간 복잡도를 알고리즘 효율의 평가 기준으로 삼는다.</p>
<div class="admonition question">
<p class="admonition-title"><span class="arithmatex">\(\Theta\)</span> 기호는 왜 보기 드문가?</p>
<p><span class="arithmatex">\(O\)</span> 기호가 워낙 익숙해서인지 평균 시간 복잡도에도 이를 자주 사용한다. 그러나 엄밀하게는 올바른 표기 방식이 아니다. 이 책이나 다른 자료에서 ‘평균 시간 복잡도 <span class="arithmatex">\(O(n)\)</span>’ 같은 표현을 만나면 <span class="arithmatex">\(\Theta(n)\)</span>으로 이해하면 된다.</p>
</div>
<!-- Source file information -->
<!-- Was this page helpful? -->
<!-- Previous and next pages link -->
<nav aria-label="하단/푸터" class="md-footer__inner md-grid">
<!-- Link to previous page -->
<a aria-label="이전: 2.2   반복과 재귀" class="md-footer__link md-footer__link--prev" href="../iteration_and_recursion/" rel="prev">
<div class="md-footer__button md-icon">
<svg class="lucide lucide-arrow-left" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 19-7-7 7-7M19 12H5"></path></svg>
</div>
<div class="md-footer__title">
<span class="md-footer__direction">
이전
</span>
<div class="md-ellipsis">
2.2   반복과 재귀
</div>
</div>
</a>
<!-- Link to next page -->
<a aria-label="다음: 2.4   공간 복잡도" class="md-footer__link md-footer__link--next" href="../space_complexity/" rel="next">
<div class="md-footer__title">
<span class="md-footer__direction">
다음
</span>
<div class="md-ellipsis">
2.4   공간 복잡도
</div>
</div>
<div class="md-footer__button md-icon">
<svg class="lucide lucide-arrow-right" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M5 12h14M12 5l7 7-7 7"></path></svg>
</div>
</a>
</nav>
<!-- Comment system -->
<!-- Check-in button above comments -->
<h5 align="center" id="__comments">댓글로 의견이나 질문, 제안을 남겨 주세요</h5>
<!-- Insert generated snippet here -->
<script async="" crossorigin="anonymous" data-category="Announcements" data-category-id="DIC_kwDOIXtSq84CSZk_" data-emit-metadata="1" data-input-position="top" data-lang="ko" data-mapping="pathname" data-reactions-enabled="1" data-repo="krahets/hello-algo" data-repo-id="R_kgDOIXtSqw" data-strict="1" data-theme="light" src="https://giscus.app/client.js">
</script>
<!-- Synchronize Giscus theme with palette -->
<script>
var giscus = document.querySelector("script[src*=giscus]")
function getGiscusTheme() {
var palette = __md_get("__palette")
var isDark = palette && typeof palette.color === "object" && palette.color.scheme === "slate"
return isDark ? "noborder_dark" : "light"
}
/* Set palette on initial load */
giscus.setAttribute("data-theme", getGiscusTheme())
/* The Giscus client creates the iframe asynchronously with an English title. */
;(function() {
function labelCommentsFrame() {
var frame = document.querySelector("iframe.giscus-frame")
if (!frame) return false
frame.setAttribute("title", "댓글")
return true
}
if (labelCommentsFrame()) return
var observer = new MutationObserver(function() {
if (labelCommentsFrame()) observer.disconnect()
})
observer.observe(giscus.parentElement, { childList: true, subtree: true })
})()
/* Register event handlers after documented loaded */
document.addEventListener("DOMContentLoaded", function() {
var ref = document.querySelector("[data-md-component=palette]")
if (!ref) return
ref.addEventListener("change", function() {
var theme = getGiscusTheme()
/* Instruct Giscus to change theme */
var frame = document.querySelector(".giscus-frame")
if (!frame) return
frame.contentWindow.postMessage(
{ giscus: { setConfig: { theme } } },
"https://giscus.app"
)
})
})
</script>
</article>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
저작권 © 2026 krahets<br/>웹사이트 콘텐츠에는 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a> 라이선스가 적용된다
</div>
</div>
<div class="md-social">
<a class="md-social__link" href="https://github.com/krahets" rel="noopener" target="_blank" title="github.com">
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2" fill="currentColor"></path></svg>
</a>
<a class="md-social__link" href="https://twitter.com/krahets" rel="noopener" target="_blank" title="twitter.com">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc.--><path d="M357.2 48h70.6L273.6 224.2 455 464H313L201.7 318.6 74.5 464H3.8l164.9-188.5L-5.2 48h145.6l100.5 132.9zm-24.8 373.8h39.1L119.1 88h-42z" fill="currentColor"></path></svg>
</a>
<a class="md-social__link" href="https://leetcode.cn/u/jyd/" rel="noopener" target="_blank" title="leetcode.cn">
<svg viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc.--><path d="M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6m64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l73.3-73.4c12.5-12.5 12.5-32.8 0-45.3z" fill="currentColor"></path></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"annotate":null,"base":"../../","features":["content.action.edit","content.code.annotate","content.code.copy","content.tabs.link","content.tooltips","navigation.indexes","navigation.tracking","search.highlight","search.share","search.suggest","toc.follow"],"search":"../../assets/javascripts/workers/search.b6b7e04f.min.js","tags":null,"translations":{"clipboard.copied":"클립보드에 복사됨","clipboard.copy":"클립보드로 복사","search.result.more.one":"이 문서에서 1개의 검색 결과 더 보기","search.result.more.other":"이 문서에서 #개의 검색 결과 더 보기","search.result.none":"검색어와 일치하는 문서가 없습니다","search.result.one":"1개의 일치하는 문서","search.result.other":"#개의 일치하는 문서","search.result.placeholder":"검색어를 입력하세요","search.result.term.missing":"포함되지 않은 검색어","select.version":"버전 선택"},"version":null}</script>
<script src="../../assets/javascripts/bundle.9da20b33253961ce280a4a32ba173a4ae6a1344b3b104ddf2f5f2caf9b8f6ec8.min.js"></script>
<script src="../../javascripts/mathjax.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-mml-chtml.min.js"></script>
<script src="../../javascripts/animation_player.js"></script>
<script defer="" src="/assets/figure-svg/js/bcdea376f01bc2bc0cac7c6c.js"></script><script defer="" src="/assets/figure-svg/js/e84f59519170c0f5ef238548.js"></script><script defer="" src="/assets/figure-svg/js/99a707e9f0a14d8280f16808.js"></script><script defer="" src="/assets/figure-svg/js/b789dc8b01e43e756fc89964.js"></script></body>
</html>