일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 창훈쓰다
- 캘리그라피
- 평창동계올림픽
- 다음 API
- 외판원 순회
- BOJ 2098
- 안드로이드 스튜디오
- lower_bound
- 생활코딩
- 삼성 코딩테스트
- 그리디 알고리즘
- 성화봉송주자
- 백트레킹
- 다음 지도 api
- 다이나믹 프로그래밍
- 인간이 그리는 무늬
- DP
- 영어회화 100일의 기적
- upper_bound
- yolo
- boj
- BFS
- MST
- multiset
- 성화봉송
- 언어의 온도
- Segment Tree
- 위상정렬
- 비트마스크
- 이분탐색
- Today
- Total
Hoon222y
3. 코딩과 디버깅에 대해서 본문
3.1 코드의 중요성을 간과하지 마라.
프로그래밍 대회에서 좋은 성적을 올리기 위한 비결은 당장 빨리 코드를 작성하는 것보다 읽기쉬운 코드를 작성하는 것이다.
- 복잡하고 읽기 어려운 코드는 디버깅도 어렵고, 한번에 정확하게 작성하기도 어렵기 때문에 ...
- 반복적인 연습을 통하여 내 코드 스타일을 간결하고 일관되게 짜야한다.
3.2 좋은 코드를 짜기위한 원칙
간결한 코드를 작성하기
적극적으로 코드를 재사용하기
- 같은 코드가 세번이상 등장한다면 항상 해당 코드를 함수로 분리해 재사용 한다는 원칙을 만들면 좋다.
표준 라이브러리 공부하기
- 적어도 언어의 문자열, 동적배열, 스택, 큐 리스트, 사전등의 자료구조 그리고 정렬등의 표준적인 알고리즘 구현 사용법을 알아두자.
항상 같은 형태로 프로그램을 작성하기
일관적이고 명료한 명명법 사용하기
모든 자료를 정규화해서 저장하기
- 예를들어 유리수를 표현하는 함수가 9/6 , 3/2 두개가 모두 기약분수로 처리되게 표현하는것처럼..
코드와 데이터를 분리하기
- 코드의 논리와 상관없는 데이터는 가능한 분리하는 것이 좋다.
3.3 자주하는 실수
산술 오버플로
배열 범위 밖 원소에 접근
일관되지 않은 범위 표현방식 사용하기
Off-by-one 오류
-Off-by-one 오류는 계산의 큰 줄기는 맞지만 하나가 모자라거나 하나가 많이서 틀리는 오류들의 총집합이다.
컴파일러가 잡아주지 못하는 상수 오타최대,최소
스텍 오버플로
다차원 배열 인덱스 순서 바꿔쓰기
잘못된 비교 함수 작성
최대,최소 예외 잘못 다루기
- 코드를 짤때 가장 큰값과 가장 작은값에 대해 제대로 작성하는지 확인해볼것.
연산자 우선순위 잘못쓰기
너무 느린 입출력 방식 선택
변수 초기화 문제
3.4 디버깅과 테스킹
작은 입력에 대해 제대로 실행되나 확인하기
단정문을 쓴다.
- 단정문이란 주어진 조건이 거짓일 때 오류를 내고 프로그램을 강제 종료시키는 함수 또는 구문을 의미한다.
프로그램의 계산 중간 결과를 출력한다.
-> 이러한 경우에서도 오류를 찾지 못했다면 디버깅을 사용하자
3.5 변수 범위의 이해
3.6 실수 자료형의 이해
'코딩 > 사소한 팁' 카테고리의 다른 글
배열에서 상하좌우 이동 간단한 코드 (0) | 2016.08.04 |
---|---|
string 아스키 코드 관련 팁 (0) | 2016.08.02 |
string과 아스키 코드 관련 팁 (처음알았네 ... ) (0) | 2016.08.01 |
문자열 입력 팁 (0) | 2016.07.09 |
아스키 코드 변환법 (1) | 2016.06.25 |