본문 바로가기

알고리즘-연습문제

(17)
ACM 콘테스트 문제.. 프로그래밍은 상상이다 라는 책에 있는 문제이다. 정말 임백준씨는 글을 너무 잘쓰는거 같다. 기회가 되시면 다들 임백준씨가 쓴 책을 꼭 읽어보기 바란다. 제 생각으론 전부 다 강추다. 문제> 임의수에서 이분할 수를 구하면 된다. 이분할 수가 뭐냐면 임의의 양수로서 정확히 두 개의 수 s와 t로 이루어져 있다. 여기에서 s는 0은 될수 없으며 모든 s는 t보다 앞에 나타나야 한다. 예를 들어서 44444411은 이분할 수(s는 4, t는 1) 이고 41과 1000000, 555556 도 이분할 수다. 하지만 444114나 444444는 이분할 수가 아니다. 값이 매우 큰 이분할 수인 88888888888800000는 12개의 8과 5개의 9이라는 식으로 깔끔하게 표현될수 있음에 주목하라. 이와같은 방식을 이..
연습문제 3-3 문제> 입력으로 문장을 읽어들여, 각각의 단어들이 몇 번씩 나타나는지를 계산하는 프로그램을 작성해 보세요 풀긴 풀었는데 많이 허접합니다. using namespace std; int main() { vector array; string name; char ch; while(cin.get(ch)) { if(ch == '\n') break; else if(ch==' ' || ch=='\t') { array.push_back(name); name.clear(); } else name+=ch; } array.push_back(name); typedef vector::size_type vec_sz; vec_sz size = array.size(); if(size == 0) { cout
연습문제 3-2 #include #include #include #include using namespace std; int main() { vector arr; typedef vector::size_type vec_sz; int num; coutnum) arr.push_back(num); vec_sz size = arr.size(); if(size == 0 ) { cout
3.2 평균 대신 중앙 값 사용하기 #include #include #include #include #include #include using std::cin; using std::sort; using std::cout; using std::streamsize; using std::endl; using std::string; using std::setprecision; using std::vector; int main() { coutname; cout
3.1 학생 성적 계산하기 #include #include #include #include using std::cin; using std::setprecision; using std::cout; using std::string; using std::endl; using std::streamsize; int main() { // 학생 이름 입력 coutname; cout
파일의 입력과 출력 4 문제> 사용자로부터 총 다섯 개의 숫자(정수)를 입력 받아서 순서대로 파일에 저장하는 프로그램을 작성하자 이 문제 풀면서 잼있는걸 발견했다. ㅋㅋ 자 조금 어려울수 있다. 보통 우리가 파일에 저장할때 (저 같은 경우는 대부분 fprintf , fscanf를 이용햇음) 여러 입출력 함수가 있는데 과연 무슨 차이가 있을까? fwrite를 사용하였다. 흠 과연 fwrite와 fputc에 차이점이 있을까? 여기서 말한 차이점은 기능을 말한게 아니다. 과연 파일안에 들어간 숫자가 차이가 있냐는 말이다. 바이너리 파일이므로 처음에 이걸 vim으로 읽으면 깨진다. 그래서 네이뇬검색으로 리눅스 binary코드 읽는 명령어를 찾았다. 필자는 리눅스 볼때마다 명령어를 까먹는다. ㅋㅋ !!!! 참고로 필자는 프로그램에서 값..
파일의 입력과 출력 3 사용자로부터 총 다섯 개의 숫자(정수)를 입력 받아서 순서대로 파일에 저장하는 프로그램을 작성하자 흠 이건 정수를 그대로 파일에 담는건데... numeric.dat 를 열어보면 내용이 깨져있다. 과연 제대로 들어가는 건가? 확인 할려면 파일을 읽어 출력해보면 알거같고 fwrite 함수.... c언어 초보분들은 좀 어려운 함수일듯하다 이것도 엄연히 표준함수이다 잠깐 설명을 하자면 일단 선언문을 보면 size_t fwrite(void *ptr, size_t size, size_t count, FILE *fp); void *가 인자로 들어가 있다. 이말은 곳 어떤 데이터 형도 받겠다는 것이다. c++에 오버로드를 능가한 c의 오버기능..ㅡㅡ size_t 요건 데이타 타입이다. 이것도 엄연히 표준화 되어있는 것..
파일의 입력과 출력 2 36-1에서 만든 파일의 내용을 읽어 들여서 모니터에 출력하는 프로그램을 작성해보자 단 사용자로부터 숫자를 입력 받아서, 입력 받은 수만큼의 문자를 출력하도록 구형을 하자. 예를 들어 숫자 3이 입력되면 "가나다" 이렇게 3개의 문자를 출력되어야 한다. (그림을 올리려 했지만 사이즈가 맞지 않아 타이핑으로.. 힘드러) (설명은 않함 코드가 쉬우니 별 어려움 없을거에요) (혹시 정말 이해않되는건 댓글달아 주시면 바로 답변드림)