본문 바로가기

vector

ICPC 대비 문제 9. 유쾌한 점퍼(Jolly Jumpers) 문제 9. 유쾌한 점퍼(Jolly Jumpers) PC/UVa ID: 110201/10038, 인기도: A, 성공률: 보통, 레벨: 1 >> 문제 n개의 정수(n>0)로 이루어진 수열에 대해 서로 인접해 있는 두 수의 차가 1에서 n-1까지의 값을 모두 가지면 그 수열을 유쾌한 점퍼라고 부른다. 예를 들어 다음과 같은 수열에서 1 4 2 3 앞뒤에 있는 수자 차의 절대 값이 각각 3, 2, 1이므로 이 수열은 유쾌한 점퍼가 된다. 이 정의에 따르면 중수 하나로 된 수열도 유쾌한 점퍼다. 어떤 수열이 유쾌한 점퍼인지 판단할 수 있는 프로그램을 작성하라. >> 입력 각 줄 맨 앞에는 3,000 이하의 정수가 있으며 그 뒤에는 수열을 나타내는 n개의 정수가 입력된다. >> 출력 입력된 각 줄에 대해 “Joll.. 더보기
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 더보기
set 실습 실습이다. 더이상의 설명은 생략한다.#include #include #include #include #include using namespace std; void main(void) { bool flag = true; set data; while(flag) { string tstr; cout > buf ) tokens.push_back(buf); // 나눈 토큰의 양이 0보다 작으면 다시 입력을 받는다. if ( tokens.size() = 0 ) { char* cmd = new char[tokens[0].length()]; strcpy(cmd , tokens[0].c_str()); if ( strcmp( cmd, "add") == 0 )// add일 경우. { string b; for( unsigned.. 더보기
ICPC 대비 문제 5. 그래픽 편집기(Graphical Editor) 문제 5. 그래픽 편집기(Graphical Editor) PC/UVa ID:110105/10267, 인기도:B, 성공률: 낮음, 레벨: 1 포토샵 같은 그래픽 편집기를 이용하면 텐스트 편집기에서 문서를 수정하는 것처럼 비트맵 이미지를 수정할 수 있다. 이미지는 픽셀로 이루어진 M X N 배열로 표현되며 각 픽셀마다 색이 주어진다. 간단한 대화형 그래픽 편집기를 흉내를 낼 수 있는 프로그램을 만들어보자. >> 입력 입력은 한줄에 하나씩의 편집기 명령으로 구성된다. 각 명령은 줄 맨 앞에 있는 대문자 한 개로 표현된 다. 매개변수가 필요한 경우에는 그 명령과 같은 줄에 스페이스로 분리되어 매개변수가 입력된다. 픽셀 좌표는 1이상 M이하의 열번호와 1 이상 N 이하의 행 번호, 이렇게 두 개의 정수로 표현되며.. 더보기
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.. 더보기