백준/Inha Algorithm Study Group 15

DAY5 고급 - 백준 19639번 (C++)

www.acmicpc.net/problem/19639 19639번: 배틀로얄 첫 번째 줄에 X, Y, M (0 ≤ X, Y ≤ 100,000, 2 ≤ M ≤ 100,000)이 주어진다. M은 짝수다. 다음 X개의 줄에는 i번째 사람과 싸웠을 때 잃게 되는 체력이 주어진다. 이 수는 0 이상 M / 2 이하의 정수이다. www.acmicpc.net 시간이 없어 못풀었다... 하지만 문제 읽은후 든 개념은 "고갈되는 체력이 큰 순으로 플레이어를 정렬, 회복이 큰 순으로 아이템을 정렬하여 체력고갈이 큰 플레이어부터 잡는다. 그리고 회복가능한 체력보다 작거나 같은 아이템중 최대회복 아이템을 먹는다 그리고 만약 체력+아이템합

DAY5 초급 - 백준 17273번 (C++)

www.acmicpc.net/problem/17273 17273번: 카드 공장 (Small) 진서는 CTP 카드 공장의 노동자이다. 공장에는 N개의 카드가 있으며 각 카드에는 앞면과 뒷면에 숫자가 쓰여있다. 공장장 노진의 명령에 따라서 진서는 카드를 뒤집어야 한다. 명령은 M번 내려지� www.acmicpc.net #include using namespace std; int main() { int N,M,K; int front[100] = {0}; int back[100] = {0}; int result[100]; int sum = 0; cin>>N>>M; for(int i=0; i>front[i]>>back[i]; result[i] = front[i]; } while(M--) { cin>>K; for(..

DAY4 고급 - 백준 2505번 (C++)

www.acmicpc.net/problem/2505 2505번: 두 번 뒤집기 첫줄에는 숫자판의 크기를 나타내는 정수 N (5≤N≤10,000)이 주어진다. 그 다음 줄에는 두 개의 구간이 뒤집혀진 놀이판의 상태를 나타내는 숫자들이 하나의 공백을 두고 나타난다. www.acmicpc.net #include #include using namespace std; void reverse(int array[], int left, int right) { if(left < right) { swap(array[left],array[right]); reverse(array,left+1,right-1); } } int main() { int n; int array[10001] = {0}; int temp[10001] =..

DAY4 중급 - 백준 10819번 (C++)

www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net #include #include using namespace std; int main() { int array[8] = {0}; int n; int sum = 0; int temp = 0; cin>>n; for(int i=0; i>array[i]; } sort(array,array+n); do { for(int i=0; i

DAY4 초급 - 백준 17262번 (C++)

www.acmicpc.net/problem/17262 17262번: 팬덤이 넘쳐흘러 선물 포장 공장을 말아먹은 욱제는 계곡에서 백숙을 파느라 학교에 자주 가지 못한다. 하지만 월클의 인생은 피곤한 법! 욱제는 지금처럼 힘든 시기에도 자신을 기다리는 5조5억명의 열렬한 팬� www.acmicpc.net #include using namespace std; int main() { int n,s,e; int max=-1,min=100000; int result; cin>>n; while(n--) { cin>>s>>e; if(s > max) max = s; if(e < min) min = e; } result = max-min; if(result < 0) result = 0; cout

DAY3 중급 - 백준 17287번 (C++)

www.acmicpc.net/problem/17287 17287번: The Deeper, The Better 대괄호, 중괄호, 소괄호와 0부터 9까지의 숫자로 이루어진 문자열 S가 주어진다. 문자열 S는 올바른 괄호 문자열에 숫자를 끼워 넣은 형태이고, 두 숫자가 서로 붙어있는 경우는 없다. 올바른 괄 www.acmicpc.net #include using namespace std; int main() { string s; int max = -1,sum = 0; cin>>s; for(int i=0; i= '0' && s[i] max) max = sum; } } cout

DAY3 초급 - 백준 2828번 (C++)

www.acmicpc.net/problem/2828 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M>N>>M>>count; left = 0; right = M; while(count--) { cin>>location; if(location > right) { temp = location - right; result += temp; right += temp; left += temp; } else if(location

DAY2 고급 - 백준 13022번 (C++)

www.acmicpc.net/problem/13022 13022번: 늑대와 올바른 단어 첫째 줄에 단어가 주어진다. 단어는 w, o, l, f로만 이루어져 있으며, 길이는 50을 넘지 않는다. www.acmicpc.net #include using namespace std; int main() { char input = ' '; int count[4] = {0}; while(input != '\n') { cin.get(input); //주기상 처음, w 입력 if(input == 'w') { count[0]++; } //종료 입력 else if(input == '\n') { //주기상 정상종료 if(count[0] == 0) { cout

DAY2 중급 - 백준 13413번 (C++)

www.acmicpc.net/problem/13413 13413번: 오셀로 재배치 로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검� www.acmicpc.net #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(NULL); int t,n; string before; string after; int Wcount = 0; int Bcount = 0; cin>>t; while(t--) { cin>>n>>before>>after; for(int i=0; i Bcount) cout

DAY2 초급 - 백준 11718, 11719번 (C++)

www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시� www.acmicpc.net www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net #include using namespace std; int main() ..

DAY1 중급 - 백준 13699번 (C++)

www.acmicpc.net/problem/13699 13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n� www.acmicpc.net #include using namespace std; int main() { int n; long long array[36]; int left,right; long long temp = 0; array[0] = 1; array[1] = 1; cin>>n; for(..

DAY1 초급 - 백준 19575번 (C++)

www.acmicpc.net/problem/19575 19575번: Polynomial 경근이는 수학을 좋아한다. 수학을 너무 좋아하는 나머지 다항식을 빠르게 평가하는 프로그램을 작성했다. 미지수 x로 구성된 다항식 f(x)에서 x에 k를 대입하여 f(k)를 구하는 것을 평가라고 한다 www.acmicpc.net #include using namespace std; int main() { cin.tie(NULL); cin.sync_with_stdio(false); long long N,X,ai,i; long long before; bool first = true; cin>>N>>X; while(N >= 0) { cin>>ai>>i; if(first) { before = ai; first = false; ..