반응형
1. while문 안을 조사한다.
시간초과가 뜨면 보통 while문에서 뜨게 된다. 그 말은 while안에서 답이 안나왔을 가능성이 크다. 이럴 때에는 break의 조건이나 위치를 한 번 더 생각해본다.
2. 동적 할당을 어설프게 쓰지 말자.
정적 할당으로 원하는 만큼 배열을 만들면 에러가 날 수 있다. ex) cin >> n; int arr[n];
gcc버전에 따라서 다르기 때문에 이런식으로 쓰면 될 수도 있고 안 될수도 있다. 그러면 동적할당을 쓰는게 편한데..
int * arr = new int [];
이렇게 쓰면 되는데 확실히 알고 쓰지 않으면, 예를 들어 위의 대괄호를 소괄호로 바꿔쓴다거나 하면 시간초과로 문제를 실패할 수도 있다. 동적할당은 완벽하게 쓰자.
3. 누가 봐도 큰 수를 조심하자.
주어지는 변수의 범위가 K(1<=K<=2,000,000) 이런 것들이 있다. 이 때에는 모두를 조사하지 않는 예외 조건을 붙이거나 최소한으로 계산할 수 있도록 해야한다. 하지만 여기서 중요한 것은 테스트 코드를 실행시켰는데 틀렸다는 것과 시간초과가 같이 뜬다면 그냥 틀린거다.
추후에 추가사항이 있으면 더 붙입니다.
반응형
'공부 > 알고리즘(c++)' 카테고리의 다른 글
알고리즘 공부/강의 - 5. 배열과 스택 (0) | 2021.02.08 |
---|---|
알고리즘 공부/강의 - 4. 이분 탐색(검색),결정 알고리즘 (0) | 2021.01.23 |
알고리즘 공부/강의 - 3. sort 정렬문제 (0) | 2021.01.20 |
알고리즘 공부/강의 - 2. 반복문을 이용한 산수문제 (0) | 2021.01.17 |
알고리즘 잡담 - c와 python 차이 (0) | 2021.01.17 |