칠판에 문제를 적는다.골똘히 생각한다칠판에 답안을 적는다문제 해결 과정을 단계별로 나누었다.(아주 중요하다)문제를 적어보는 단계가 있다. 문제를 읽고 이해한 뒤 자신의 언어를 이용해 재정의 해야 하기 때문에 이 단계는 매우 중요하다.문제를 이해한다.어떻게 풀지 계획을
좋은 코드를 짜기 위한 원칙 간결한 코드를 작성하기 코드가 짧으면 짧을수록 오타나 단순한 버그가 생길 우려가 줄어들고, 디버깅도 쉬워진다. 프로그래밍 대회에서만 전역 변수의 광범위한 사용 전역 변수를 많이 사용하면 프로그램의 흐름을 파악하기 어려워지기 때문에 대개 사
디버깅과 테스팅 디버깅에 관하여 프로그래밍 대회에서 디버거는 유용성이 제한된다. 프로그래밍 대회에서 작성하는 소스 코드는 대개 길지 않기 때문에, 소스를 한 줄씩 읽어 내려가면서 검증하는 것이 가능하다. 경우에 따라 다르지만 눈으로 디버깅하는 쪽이 훨씬 빠른 경우가
산술 오버플로 컴퓨터의 모든 변수에는 담을 수 있는 크기가 제한되어 있다. 산술 오버플로는 어떤 식의 계산 값이 반환되는 자료형의 표현 가능한 범위를 벗어나는 경우를 말한다. 산술 오버플로는 프로그래밍을 하면서 저지를 수 있는 수많은 실수 중에서도 가장 흔한 실수라고
개관 어떤 작업이 주어졌을 때 컴퓨터가 이 작업을 해결하는 방법을 가리켜 알고리즘(algorithm)이라고 한다. 주어진 문제를 해결하는 한 가지 방법을 명료하게 써 놓은 것을 알고리즘이라고 한다. 주관적이거나 모호한 것은 알고리즘이라고 할 수 없다. 예를 들어 서
선형 이하 시간 알고리즘 어던 문제건 입력된 자료를 모두 한 번 훝어보는 데에는 입력의 크기에 비례하는 시간, 즉 선형 시간이 걸린다. 그럼 선형 시간보다 빠르게 동작하는 알고리즘들은 입력된 자료를 다 보지도 않는단 말이다. 입력으로 주어진 자료에 대해 우리가 미리 알
정렬 알고리즘의 이론상 성능 한계인 O(nlogn)의 한계를 넘어설 수 있는 현재까지 유일한 알고리즘길이가 같은 데이터들만 정렬이 가능하다. 정렬 대상 및 기준에 따라서 특정 알고리즘을 적용하여 길이가 다른 데이터들을 정렬할 수도 있다. 이 경우도 매우 제한적이다.데이