반응형
츄르사려고 코딩하는 코집사입니다.
1. 출력 문제
- 문제에서 제시하는 출력 기준에 맞게 값을 출력하고 있는지 확인한다.
- 예를 들어, 1 2 3 으로 출력해야 하는데, 123 으로 출력하는 경우
- YES 라고 출력해야 하는데 Yes라고 출력하는 경우 등
2. 시간초과
- for문은 O(n)의 시간복잡도이다. 그래서, 반복횟수가 커질 경우 시간초과가 날 수 있다.
- 그래서 자바(Java)에서는 Java String의 length()를 사용하면 시간복잡도는 O(1)이다.
- 중복계산을 하는 경우
- 자바(Java)에서 String의 += 연산의 시간복잡도는 O(N+알파)이다. 알파는 추가하려는 수의 개수.
- C++에서는 += 연산의 시간복잡도는 O(K), + 연산은 O(N+알파)
- 자바는 StringBuilder나 BufferedWriter를 사용해야 시간초과를 줄일 수 있다.
3. 메모리 초과
- 많은 변수들을 선언하는 경우
4. InputMisMatch
- Int, long, BigInteger 등을 잘 선택해야 한다.
5. 오버플로우(OverFlow)
- 자바(Java)의 경우에는 Int형의 값의 범위는 2^31 - 1 = 2147483647이기 때문에 입력값을 조심해야 한다.
6. 런타임에러
- BFS에서 if문을 사용할 때 접근보다 범위를 먼저 검사해야 한다.
- if(범위 && 접근)
- if( A && B) -> A가 false일 경우 B는 검사하지 않음
7. 중요한 알고리즘
- 브루트포스
- DFS/BFS
- 이분탐색
- 구현
- 시뮬레이션
- DP
- SQL 정규표현식
- 정렬 알고리즘
반응형
'알고리즘 > 알고리즘 학습' 카테고리의 다른 글
[알고리즘] 플로이드 와샬 알고리즘 파이썬(Python) (0) | 2021.05.10 |
---|---|
페르마 소정리 알고리즘 (0) | 2021.04.19 |
최소 신장트리(MST, Minimum Spanning Tree) - KRUSKAL 알고리즘, PRIM 알고리즘 (0) | 2021.03.18 |
서로소 집합(Disjoint-set) - Union-Find 알고리즘 (0) | 2021.03.18 |
순차탐색(Sequence Search) 알고리즘 (0) | 2020.08.11 |
1부터 n 까지 연속한 숫자의 합을 구하는 알고리즘 (0) | 2020.08.10 |
알고리즘 회문(Palindrome) 파이썬 뒤집어 더하기 (2) | 2020.01.22 |
파이썬(Python) 소수구하기 소스 코드 (0) | 2020.01.17 |
최근댓글