본문 바로가기

ICPC 대비 문제 8. 호주식 투표법(Australian Voting) >> 문제 8. 호주식 투표법(Australian Voting) PC/UVa ID: 110108/10142, 인기도: B, 성공률: 낮음, 레벨: 1 >> 문제 호주식 투표 제도에서는 투표권자가 모든 후보에 대해 선호도 순으로 순위를 매긴다. 처음에는 1순위로 선택한 것만 집계하며 한 후보가 50% 초과 득표하면 그 후보가 바로 선출된다. 하지만 50% 초과 득표한 후보가 없으면 가장 적은 표를 받은 후보(둘 이상이 될 수도 있음)가 우선 탈락된다. 그리고 이렇게 탈락된 후보를 1순위로 찍었던 표만 다시 집계하여 아직 탈락되지 않은 후보들 가운데 가장 높은 선호도를 얻은 후보가 그 표를 얻는다. 이런 식으로 가장 약한 후보들을 탈락시키면서 그 다음 순위의 아직 탈락하지 않은 후보에게 표를 주는 과정을 5.. 더보기
ICPC 대비 문제 7. 체크 확인(Check the Check) >> 문제 7. 체크 확인(Check the Check) PC/UVa ID:110107/10196, 인기도: B, 성공률: 보통, 레벨 1 >> 문제 체스판 설정을 읽어서 킹이 공격받고 있는지(체크 상태인지) 확인하는 일을 해야 한다. 상대방의 다음 수에 의해 킹이 죽을 수 있는 위치에 있으면 킹이 체크 상태가 된다. 흰 말은 대문자로, 검은 말은 소문자로 표시된다. 흰 편은 항상 판의 아래쪽에, 검은 편은 판의 위쪽에 자리잡는다. 체스를 잘 모르는 사람들을 위해 각 말의 이동 방법을 설명하자면 다음과 같다. 폰(Pawn, p 또는 P): 한 번에 한 칸씩 앞으로만 갈 수 있다. 하지만 대각선에 있는 상대 말을 잡을 수 있으며 이 문제에서 이 부분에 주의해야 한다. 나이트(Knight, n 또는 N): .. 더보기
set 실습 2 간략한 도서관리 프로그램. set 실습 여기에서 클래스 추가하고, 내부 조금 수정한 프로그램이다. #include #include #include #include #include #include using namespace std; class BookCase { public: string isbn; string name; string amount; BookCase(const string & pIsbn, const string & pName, const string & pAmount ) : isbn(pIsbn), name(pName), amount(pAmount){ } void DataView(){ cout 더보기