프로그래머스나 백준 확인해보니까
프로그래머스에선 보통 숫자의 범위, 배열의 최대크기
백준에선 시간제한 이런식으로 주어지는데 여기서 말씀해주신건 시간제한이죠ㅕ??
Answer 2
0
https://www.acmicpc.net/problem/22864
와... 도움 많이 됐습니다..!! 혹시 이거 하나만 더 여쭤봐도 되나요?? 2개 정도면 충분히 감 잡을 거 같습니다!!!!
0
시간복잡도에 사용할 n은 다양한 형태로 문제에서 드러나요. 저희가 어떻게 문제를 해결해나갈지에 따라 달라지죠.
그래서 제가 문제풀이 영상에서 항상 "이 값이 input size N인지는 접근방법을 생각해보면서 확정지을 수 있다." 라고 말씀드립니다.
이 문제에서 A, B, C, M 의 값은 시간복잡도를 결정하지 않아요. 저희는 이 문제를 완전탐색으로 만약 접근한다고 해볼게요.
그럼 모든 경우의수를 따져봐야겠죠? 매 시간마다 우리는 선택권이 2 가지가 있어요. 일을 할건지 안 할건지. 근데 그게 10시간이면 2^10 가지의 경우의 수를 다 따져봐야겠죠. 근데 24시간이면 2^24의 시행횟수가 될거에요. 즉 제한된 시간이 n 시간일 때 2^n 의 시간복잡도가 걸린다고 보면 되죠. 이 문제에서 n은 몇시간 동안 일할지 에요. 여기서 근데 제한조건으로 24시간 일할거다! 하루만 일할거다! 라고 말했죠.
즉 우리는 O(2^n)의 접근방법을 생각해냈고, 요기서 n은 내가 일할 시간이고, 문제에서 n을 24라고 정해줬기 떄문에 2^24 = 16,777,216 < 10^8 이니까 완전탐색을 해도 시간초과가 나지 않을거에요. 16,777,216 이값은 10^7에 가깝기 때문에 코드를 좀 비효율적으로 작성하면 시간초과가 날 수 있는 위태로운 접근방법이긴 하네요.
질문에 대한 답이 됐을까요~?
0
백준에서는 모든 문제에 시간 제한이 쓰여져 있는데, 이건 크게 의미 없습니다. 왜냐면 다른 프로그래머스나 leetcode문제는 시간제한이 몇초인지 정해주진 않았으나, 보통 1~10초를 넘어가지 않아야된다고 암시적으로 정해져 있어요. 약간 국룰?
국룰을 백준에서는 명시한것 뿐입니다. 즉, 크게 의미 없는거죠.
https://www.acmicpc.net/problem/11727
이 문제를 보시면, 국룰을 명시해줬고 (시간제한 1초) 입력값의 범위를 정해줬네요. (1 <= n <= 1000 )
그럼 이 문제는 O(n^2)으로 풀어도 되고, O(n^3)으로는 풀 수 없게 됩니다. 더욱이 O(2^n)이나 O(3^n)의 풀이방법으로는 턱도 없죠.
이렇게 입력값의 범위를 통해 시간복잡도를 미리 계산할 수 있게됩니다.

질문에 대한 답이 됐을까요~??
더 궁금한점있으시면 언제든 질문 올려주세요
노션 공유 링크
0
83
2
수업 중간에 내주신 문제는 해답을 알 수 없는걸까요?
0
73
2
최신 강의와 비교
0
79
2
Min Cost Climbing stairs 질문
0
74
2
노션 공유 부탁드립니다!
1
84
2
for 문에 sort 함수 를 사용하면
1
85
2
노션 공유 부탁드립니다.
0
100
2
디스코드가 올바르지 않다고 뜹니다..!
0
103
1
그래프
0
94
2
노션 공유
1
121
2
시간복잡도 질문
2
121
3
11강 질문
1
74
2
노션 공유 부탁드립니다
0
81
2
linkedList - BrowserHistory 코드 질문
0
71
1
list1.append(list2)와 list1.append(list2[:])의 차이가 무엇인가요?
1
164
1
라이브러리 사용
1
133
2
문제 교재는 따로 없는 거 맞나요?
1
199
2
LCA 관련해서 질문이 있습니다.
1
116
2
[Unique Paths] 완전탐색 / DP (후반부)
0
101
1
dp 계단오르기최소비용질문입니다.
0
106
1
Dynamic Array 의 size 정보가 저장되는 곳
2
158
2
노션공유가 안된듯 합니다
1
160
2
[코테 적용] 👉 [3번 문제] 완전탐색 (DFS, BFS) (전반부)
1
117
1
강의자료 만들 때 사용하신 프로그램이 뭘까요?
1
195
1

