Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Nnnnnnnnn

알고리즘 주의할 점 본문

Algorithm

알고리즘 주의할 점

와이제인 2018. 3. 27. 21:28

산술 오버플로우


계산 과정에서 변수의 표현 범위 값 벗어나지 않도록 주의.

결과 값이 너무 크거나, 중간 연산되는 값이 커 비트를 초과한 경우 해당 비트 범위 값만 취해서 결과가 달라질 수 있음. 




배열 범위 밖 원소 접근




Off-by-one 오류


하나가 모자라거나 하나가 많아서 틀리는 코드의 오류들.




스택 오버플로우


프로그램의 실행 중 콜 스택이 오버플로우하여 프로그램이 강제 종료됨.

스택 오버플로우는 대개 재귀 호출의 깊이가 너무 깊어져서 옴. C++의 경우 지역 변수로 선언한 배열이나 클래스 인스턴스가 기본적으로 스택 메모리를 사용하기 때문에 특히나 스택 오버플로우를 조심해야 함.




연산자 우선 순위 주의


if(a & 1 == 0) 일 때, & 연산자는 == 보다 우선순위가 낮음.




디버깅


1. 작은 입력에 대해 제대로 실행되나 확인하기 : 오동작하는 가장 작은 입력을 먼저 찾아내기.

2. 단정문 쓰기 : 주어진 조건이 거짓일 때 오류를 내고 프로그램을 강제 종료시키는 함수 또는 구문.

3. 프로그램의 계산 중간 결과를 출력 : 프로그램이 실행되는 중간 과정 값들을 출력하고 예상하는 바와 맞는지를 검사.


'Algorithm' 카테고리의 다른 글

Recursion  (0) 2019.05.20
시간복잡도  (0) 2018.03.27
cin과 scanf 속도  (0) 2017.12.30
비트마스크 - 2  (0) 2017.12.30
비트마스크 - 1  (0) 2017.12.30