1. 입력값의 범위 유의.
문제에서 제한한 한도 내에서 입력값을 최대로 줘서 검사하는 경우가 있다.(ex 3n+1 문제)
4byte 정수면 long 형 2byte 라면 int 형임에 한번 더 유의.
양수인 경우 unsinged long을 쓰면 좋겠지만, 일반적으로 long 이 짧고 무난하다고 본다.
2. 입력값의 순서를 파악
연속적으로 값을 입력받는 경우가 있다.
어떤 문제는 케이스하나에도 매우 많은 수들을 입력받기 때문에
입력순서를 정확히 파악하여 코드를 작성한다.
3. 입력의 종료시점을 위한 코드 고려
무한루프로 입력을 받으면 낭패다.(ex 3n +1)
적어도 입력값이 EOF인지를 확인하여 탈출한다.
cin 의 경우는 리턴되는 값이 0이 아닌 값이다.
바꿔말해 0이 리턴되는 경우는 입력이 끝임을 말하는 것이다.
(아마 입력 리다이렉션방법으로 파일로 입력을 시켜서 그런지도 모른다)
4. 입력된 값들의 관계를 정확히 파악한다.
3n+1의 경우 두 수 i,j 를 입력받아 그 사이의 수에 대한 처리를 한다.
i를 먼저 입력 받고 j를 나중에 입력 받았다고 해서 반드시 i < j의 관계일 필요가 없었다.
이경우 틀렸다고 간주하므로 유의한다.
'자료구조 및 알고리즘' 카테고리의 다른 글
(C++)Iterator (0) | 2009.10.26 |
---|---|
임의의 시퀀스를 만들 때. (0) | 2009.10.12 |
GA design feedback (0) | 2009.10.06 |
(STL)map과 hash_map의 차이 (0) | 2009.03.29 |
(STL) set (0) | 2009.03.29 |