Coding

    카드의 합 구하기

    https://www.acmicpc.net/problem/2798 #include #include #include using namespace std; int main () { vector deck; // 카드 덱을 저장할 벡터 int N, M, temp; // N = 카드의 개수, M = 카드의 합 int i, j, k; // 반복 인수 int sum=0, top=-1; // sum = 일시적인 카드의 합, top = 여태까지 최고의 합 // 입력을 받는다. cin >> N >> M; deck.reserve(N); for (i=0; i > temp; deck.push_back(temp); } // bruteforce search for (i=0; i

    계단 오르기

    1. 재귀형 완전 탐색 #include #include using namespace std; vector tri; int N; int step (int value, int row, int col) { // 자기가 있는 곳까지의 값의 합을 가지고 시작한다. // 기저 사례 // 여기가 끝일 경우 -> 현재까지의 값을 리턴. if (row == N-1) return value; // 재귀 사례 // 바로 밑으로 가거나 오른쪽 밑 중에서 큰 값을 리턴한다. return max(step(value+tri[row+1][col], row+1, col), step(value+tri[row+1][col+1], row+1, col+1)); } int main () { int hi; cin >> N; /..

    그대로 출력하기

    https://www.acmicpc.net/problem/11718 문제 내용 입력 받은 대로 출력하는 프로그램을 작성하시오. 입력 최대 100줄로 이뤄져있는 문자열이 제시된다. 각 줄은 100글자를 넘지 않는다. 출력 입력받은 그대로 출력한다. 풀이 cin으로 입력값을 받고 입력값을 받을 때마다 eof를 검사한다. eof는 cin 버퍼에 내장되어 있다. 디버깅을 위해 EOF를 입력할 때는 window는 ctrl+Z, unix는 ctrl+D이다. 코드 #include #include using namespace std; int main(int argc, char* argv[]) { string buffer; while(!cin.eof()) { getline(cin, buffer); cout

    열 개씩 끊어 출력하기

    https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 문제 내용 알파벳 소문자와 대문자로만 이루어진, 길이가 N인 문자열이 주어진다. 이를 10글자씩 끊어서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어가 주어진다. 단어는 알파벳으로 구성돼 있으며 길이가 1에서 100사이다. 출력 입력으로 주어진 단어를 열 개씩 출력한다. 마지막 줄에는 10개 미만의 글자만 출력할 수 있다. 시도 1(오답) 접근 입력에서 문자열 길이가 100 이하라고 주어졌다. 그렇다면 굳이 공간을 동적..

    프로그래밍 대회를 위한 빠른 출력함수 정리

    C++ (참고한 웹페이지(새창)) C++에서 주로 사용되는 출력함수의 속도를 비교하면 다음과 같다. (다른 하드웨어 환경에선 다른 결과값이 나온다.) On Windows/VC++ On Linux/g++ printf 1.975 0.159 puts 1.458 0.173 cout (synced) 1.297 0.282 cout (un-synced) 1.28 0.232 stringstream 2.03 0.430 endl 12.621 10.041 fill_n 1.285 0.254 윈도우 환경 : cout > puts >> printf 리눅스 환경 : printf > puts >>> cout