시간 복잡도 공부하는데 이 부분이 계속 이해가 안 가요. 반복문 두 번 돌면 2n이고, 앞에 뭐 100번 정도 따로 도는 게 있으면 n+100 이렇게 되는 거잖아요. 근데 이걸 다 그냥 O(n)이라고 퉁친다는 게 좀 억지스럽게 느껴져요.


예를 들어 이런 코드가 있으면,


for i in range(n):
    print(i)
for j in range(n):
    print(j)


이건 딱 봐도 n번을 두 번 도니까 2n번 도는 거잖아요. 실제로 실행하면 한 번 도는 것보다 두 배 느릴 텐데, 그걸 그냥 O(n)이라고 하면 그 두 배 차이는 어디로 사라진 건가 싶어요.


궁금한 거,

1. 실제로 두 배 걸리는데 왜 상수 2를 그냥 버리나요

2. n+100에서 100도 그냥 무시하는데 n 작을 땐 100이 더 크지 않나요

3. 그럼 O 표기는 대체 뭘 비교하려고 만든 개념이에요


계산은 하겠는데 왜 이렇게 하는지 납득이 안 돼서 여쭤봐요.