728x90

2018/08 14

백준] 1233 - 주사위(USACO 2008)

시간 제한 : 2초메모리 제한 : 128MB 입력입력 파일의 첫째 줄에 정수 S1, S2, S3가 주어진다. 출력출력 파일의 첫째 줄에 가장 높은 빈도로 나오는 세 주사위 합을 구하는 것이다. 단 답이 여러개라면 가장 합이 작은 것을 출력한다. 소스코드 #include using namespace std; int main(void) { int s1, s2, s3, arr[81] = { 0, }; cin >> s1 >> s2 >> s3; for (int i = 1; i

백준] 2484 - 주사위 네 개(한국정보올림피아드 2010;KOI 2010 지역본선)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에는 참여하는 사람 수 N이 주어지고 그 다음 줄부터 N개의 줄에 사람들이 주사위를 던진 4개의 눈이 빈칸을 사이에 두고 각각 주어진다. 출력첫째 줄에 가장 많은 상금을 받은 사람의 상금을 출력한다. 소스코드 #include using namespace std; int main(void) { int n, arr[4], max = 0; cin >> n; while (n--) { int dice[7] = { 0, }, tmp=0; for (int i = 0; i > arr[i]; dice[arr[i]]++; } for (int i = 1; i

[책] 알고리즘 산책:수학에서 제네릭 프로그래밍까지

학부 과정이나 입문자를 위한 알고리즘 책이라고 하면, 프로그래밍이 메인이고, 수학은 시간 복잡도 계산이나 근사치 계산 정도에 쓰이는 정도가 전부인 경우가 많다. 책 구성 또한 시간 복잡도 및 공간 복잡도 계산부터 시작해서 그리디나 다이나믹 프로그래밍(동적계획법) 같은 최적해를 구하는 알고리즘들, 그래프를 이용한 알고리즘(DFS, BFS)들로 구성되어 있다. 이들 알고리즘에 대해 충분히 학습했거나, 이런 내용보다 수학적인 연관성에 관심이 가는 사람들에게는 보통의 책들이 어딘가 부족할 수도 있다. 오늘은 그런 사람들을 위한 책을 하나 소개해볼까 한다. 알고리즘 산책 : 수학에서 제네릭프로그래밍까지 먼저 책의 목차를 살펴보자. 1. 이 책에 관하여2. 첫 번째 알고리즘3. 고대 그리스의 정수론4. 유클리드의 ..

기타/기타 2018.08.24

백준] 2857 - FBI(COCI 2010/2011)

시간 제한 : 1초메모리 제한 : 128MB 입력5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다. 출력첫째 줄에 FBI 요원을 출력한다. 이 때, 해당하는 요원이 몇 번째 입력인지를 공백으로 구분하여 출력해야 하며, 오름차순으로 출력해야 한다. 만약 FBI 요원이 없다면 "HE GOT AWAY!"를 출력한다. 소스코드 #include #include #include using namespace std; int main(void) { int n = 5; vector arr; for (int i = 1; i > str; if (str.find("FBI", 0) != string::npos) arr.push_back(i); }..

백준] 5704 - 팬그램(ACM-ICPC Regionals)

시간 제한 : 1초메모리 제한 : 128MB 입력입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 많아야 200글자로 이루어져 있는 문장이다. 단어는 공백 하나로 구분되어 있다. 또, 단어는 알파벳 소문자로만 이루어져 있다. 입력의 마지막 줄에는 별표(*)가 하나 주어진다. 출력각 테스트 케이스에 대해서, 입력으로 주어진 문장이 팬그램이라면 'Y', 아니라면 'N'를 출력한다. 소스코드 #include #include using namespace std; int main(void) { while (1) { string str; getline(cin, str); if (str == "*") break; int arr[26] = { 0, }, len; len = str.length(); for..

백준] 2578 - 빙고(한국정보올림피아드 2006;KOI 2006 지역본선)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 빙고판에 쓰여진 수와 사회자가 부르는 수는 각각 1부터 25까지의 수가 한 번씩 사용된다. 출력첫째 줄에 사회자가 몇 번째 수를 부른 후 철수가 "빙고"를 외치게 되는지 출력한다. 소스코드 #include using namespace std; int board[5][5]; bool isCheck[5][5]; int calls[25]; void check(int n) { for (int i = 0; i < 5; i++) fo..

백준] 15969 - 행복(한국정보올림피아드 2018;KOI 2018 전국)

시간 제한 : 2초메모리 제한 : 512MB 입력표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 학생 수 N이 주어진다. 다음 줄에는 N명의 학생 점수가 공백 하나를 사이에 두고 주어진다. 출력표준 출력으로 가장 높은 점수와 가장 낮은 점수의 차이를 출력한다. 소스코드 #include using namespace std; int main(void) { int max = -1, min = 1001, tmp, n; cin >> n; for (int i = 0; i > tmp; if (max tmp) min = tmp; } cout

C++ assert() 함수의 용도와 사용 시 참고사항

void assert(int expression) 조건문이 false면 프로그램을 종료시켜버리며 디버깅에 사용하는 함수.assert.h에 정의된 매크로 함수로 이를 인클루드하여 사용.assert의 조건문에서 문제가 발생해서 에러가 발생하면 메세지 박스에 어떤 파일의 어떤 라인에서 문제가 발생했는지 적혀 있어 쉽게 문제가 되는 부분을 찾아낼 수 있음.assert를 통해 메세지를 받았을 경우, 메세지 박스에서다시 시도 버튼을 누르고 중단 시점의 콜 스택이나 변수 상태를 확인해 원인을 확인할 수 있음. assert를 이용하는 이유어떤 에러를 유발할 수 있는 작업이 진행되고 에러가 한참 뒤에서나 발생해서 프로그램에 문제를 일으키면 에러를 유발한 실제 작업을 찾기가 어려워짐. 이런 골치 아픈 일을 방지하기 위해서..

백준] 2863 - 이게 분수?(COCI 2010/2011)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 A와 B가 공백으로 구분되어 주어진다. 둘째 줄에 C와 D가 공백으로 구분되어 주어진다. 모든 수는 100보다 작거나 같은 양의 정수이다. 출력첫째 줄에 표를 몇 번 돌려야 표의 값이 최대가 되는지 출력한다. 만약, 그러한 값이 여러개라면 가장 작은 값을 출력한다. 소스코드 #include using namespace std; int main(void) { int cnt, ans; double a, b, c, d, max = 0, tmp; cin >> a >> b >> c >> d; for (cnt = 0; cnt < 4; cnt++) { switch (cnt) { case 0: tmp = a / c + b / d; break; case 1: t..

백준] 14720 - 우유 축제(충남대학교 생각하는 프로그래밍 대회)

시간 제한 : 1초메모리 제한 : 256MB 입력첫째 줄에 우유 가게의 수 N이 주어진다. (1 ≤ N ≤ 1000)둘째 줄에는 우유 가게 정보가 우유 거리의 시작부터 끝까지 순서대로 N개의 정수로 주어진다.0은 딸기우유만을 파는 가게, 1은 초코우유만을 파는 가게, 2는 바나나우유만을 파는 가게를 뜻하며, 0, 1, 2 외의 정수는 주어지지 않는다. 출력영학이가 마실 수 있는 우유의 최대 개수를 출력하시오. 소스코드 #include #include using namespace std; int main(void) { int n, cnt, state, start = -1; bool check = false; cin >> n; vector arr(n); for (int i = 0; i < n; i++) { ..