Big-O, 왜 상수는 무시할까? (feat. Ω, Θ 표기법 정리)_Part 2
·
TEST/Testing
📢 시리즈 알림: 이 글은 시간 복잡도 심화편(Part 2)입니다. 기초적인 O(n) vs O(n²) 실전 예제는 Part 1 (이전 글)을 참고해주세요.지난 포스팅에서 우리는 시간 복잡도를 통해 코드의 효율성을 판단하는 법을 배웠습니다.그런데 공부를 하다 보면 두 가지 의문이 생깁니다."왜 2n이나 100n이나 똑같이 O(n)이라고 퉁치는 걸까?""Big-O 말고 오메가(Ω), 세타(Θ)는 대체 뭘까?"오늘은 개발자 면접이나 전공 수업에서 깊이 있게 다루는 시간 복잡도의 수학적 원리를 아주 쉽게 풀어서 정리해 보겠습니다.1. 왜 상수(Constant)는 생략하는가?우리는 흔히 O(2n)을 O(n)으로, O(n² + 100)을 O(n²)으로 표기합니다. 2배나 차이가 나는데 왜 무시하는 걸까요?핵심: ..
내 코드가 느린 이유? 시간 복잡도(Time Complexity)와 Big-O 정리_Part 1
·
TEST/Testing
📂Problem Source: GitHub - Sw_Pilot_Java (Chapter 2 / Step 2 - 3) 이 포스팅은 해당 리포지토리의 문제에 대한 분석 및 풀이 과정을 담고 있습니다.알고리즘 문제를 풀거나 실무에서 대용량 데이터를 다루다 보면, 기능은 완벽한데 "시간 초과"가 뜨거나 시스템이 버벅이는 경우를 마주합니다.이때 우리가 가장 먼저 점검해야 할 것이 바로 시간 복잡도(Time Complexity)입니다. 오늘은 제가 공부한 내용을 바탕으로, O(n²)의 늪에서 빠져나와 O(n)으로 최적화하는 과정을 정리해보려 합니다. 1. 시간 복잡도란?시간 복잡도는 알고리즘이 입력 크기(Input Size)에 따라 얼마나 많은 연산을 수행하는지를 나타내는 지표입니다.단순히 "몇 초 걸린다"..