No older revisions available
No older revisions available
소개 ¶
- 컴공과프로그래밍경진대회(1회 대회)에서
~cpp Extreme Pair
팀의 전략을 공유하는 페이지 입니다.
~cpp Extreme Pair
팀: 이상규, 신재동
시작 ¶
- 저희
~cpp Extreme Pair
팀은 어떤 문제든 우선 소스를 기본적으로 밑에 형태로 시작했습니다. 그래서 입력과 출력이나 진행에는 전혀 신경 쓰지 않고 문제를 푸는 알고리즘(process() 함수 부분)에만 집중할 수 있었습니다.
~cpp
#include <iostream>
using namespace std;
int numOfData;
inputData[10];
outputData[10];
void input()
{
cin >> numOfData;
for(int i=0;i<numOfData;i++)
{
}
}
void process()
{
for(int i=0;i<numOfData;i++)
{
}
}
void output()
{
for(int i=0;i<numOfData;i++)
{
cout << outputData[i] << endl;
}
}
void main()
{
input();
process();
output();
}
알고리즘 ¶
- 위에 시작이 끝나면 둘이 알고리즘을 생각했습니다.
- 문제당 따로 알고리즘을 생각하여 먼저 생각난 것이나 둘 중에 좋은 알고리즘을 선택했습니다.
- 이때 여러 문제를 동시에 푸는 게(예: 2명이서 2개의 문제를 동시에 푸는 것) 아니라 한 문제에 대해서만 생각했습니다. 왜냐하면 예를 들어 문제 1번을 생각하는 데 A가 12분 B가 8분이 걸리고 문제 2번을 생각하는데 A가 10분 B가 15분이 걸렸다고 하면 한문제를 둘이 동시에 풀면 8 + 10... 총 18분이 걸렸을 것을 문제를 각각 나누어 풀면 최악의 경우 A가 1번 B가 2번으로 나누어 풀면 12 + 15... 총 27분까지 시간이 걸리기 때문입니다. (대회 규칙상 컴퓨터는 각 팀당 무조건 1대입니다)
코딩 ¶
- 코딩은 기본적으로 PairProgramming 이였습니다. 드라이버가 코딩할때 파트너는 잘못된 코딩뿐만 아니라 이해안가는 부분에서는 계속적인 질문으로 드라이버 스스로 명확한 코드를 만들도록 했습니다.
- TestDrivenDevelopment를 사용했다고 말하기는 그렇지만 테스트 케이스를 입력으로 넣어놓고 프로그래밍 중간 중간에 제대로 돌아가는 지를 확인하기 위해 지금까지의 진행 상황을 출력했습니다.
제출 시 틀렸을 때 ¶
- 문제 제출 후 틀렸을 때 심사단 컴퓨터의 틀린 케이스를 대충 외워와서 문제점을 빨리 찾아 해결하였습니다.
- 시간을 단축키 위해 디스켓 제출할 때도 뛰었습니다...^^;;;
재동 ¶
- 상규와 대회전 연습을 통해 코딩 스타일과 규칙을 미리 정했었던 게 중요했다고 생각합니다. 안그랬으면 알고리즘 이외의 것도 생각해서 속도가 느려졌을 것입니다. 그리고 미리 호흡을 맞춰봤으므로 하면서 딱딱 맞았습니다.
~cpp int
에서 ~cpp Over Flow
나는 문제가 있었는데 상규가 ~cpp __int64
를 알고 있었습니다...^^;;;
- 어디에서 overflow 날만한 요소가 있었는지?? --neocoin
- 계산 과정중에 있었어여....ㅡ.ㅡ;;; --상규
상규 ¶
- 미리 싸울꺼 다 싸워놨다는게 승리 요소가 아니었나 생각합니다.. 대회 전 연습을 통해 미리 다 조정했기 때문에 그런거에서 시간을 빼앗기지 않아서 빨리 풀수 있었던것 같습니다.