본문 바로가기

Iterator

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 더보기
vector 실습 요 몇년동안 윈도우 CE기반 MFC를 사용했다. 하지만 앞으로는 Window가 아닌 플렛폼에서도 개발을 해야 될꺼 같다. 물론 아직은 C++이 아닌 언어는 본격적으로 할 생각이 없기 때문에. 그런고로 이제는 MFC에서 쉽게 사용하던 CArray, CList와 같은 클래스를 사용할수 없다 생각하고. STL을 사용하여 코딩을 하려한다. 그런고로 자문자답. >> 문제 양수 n를 입력받으면 vector에 n을 기록한다. 음수 n를 입력받으면 현재 데이터의 abs(n)의 값을 삭제한다. 0을 입력받으면 프로그램을 종료한다. #include #include #include using namespace std; void main(void) { vector data; while( true ) { int temp; ci.. 더보기