Algorithm (2139) 썸네일형 리스트형 (C++) - 백준(BOJ) 11054번 : 가장 긴 바이토닉 부분 수열 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556//3가지 경우가 있다.//1.배열의 끝까지 증가하는 경우//2.배열의 끝까지 감소하는 경우//3.배열이 증가하다가 기준값을 담고 있는 인덱스 이후부터 감소하는 경우 //이 모두를 포함하는 방법은 가장 긴 증가하는 부분수열을 인덱스 양쪽 끝에서 시작해서 각자 구한다음//그 두 배열의 합 중 가장 큰 값이 최대 바이토닉 수열의 길이가 된다.#include #include #include using namespace std;int main() { int n; int ans = 0; cin >> n; int *a = new in.. (C++) - 백준(BOJ) 1788번 : 피보나치 수의 확장 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #include #define ll long long using namespace std; ll n; ll a[1000001]; void fibo() { a[0] = 0; a[1] = 1; for (int num = 2; num > n; if (n == -1)//f(-1)만 양수이므로 둘다 1을 출력한다. { cout (C++) - 백준(BOJ) 2810번 : 컵홀더 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #include #include using namespace std; //왼쪽끝에 커플석이 오른쪽 끝에 일반석 //왼쪽끝에 일반석이 오른쪽 끝에 커플석 int main() { string n; int ans = 1; int l_cnt = 0; int word; cin >> word >> n; for (int i = 0; i word) ans = word; cout (C++) - 백준(BOJ) 1748번 : 수 이어 쓰기 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 #include using namespace std; int main() { int n; int ans = 0; cin >> n; for (int i = 1; i (C++) - 백준(BOJ) 4153번 : 직각삼각형 a^2 + b^2 = c^2 면 직각삼각형입니다. c가 무조건 제일 길이가 길어야 하므로 먼저 오름차순으로 정렬한 뒤 비교해 답을 출력하면 끝 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include #include using namespace std; int a[3]; int main() { while (1) { cin >> a[0] >> a[1]>> a[2]; if (a[0] == 0 && a[1] == 0 && a[2] == 0) { break; } else { sort(a, a + 3); if (a[0] * a[0] + a[1] * a[1] == a[2] * a[2]) { cout (C++) - 백준(BOJ) 1309번 : 동물원 S[n]을 사자를 배치하는 경우의 수라고 정의한다. S[n][0] : 사자 배치를 아무것도 안하는 것 S[n][1] : 사자 배치를 왼쪽에만 하는 것 S[n][2] : 사자 배치를 오른쪽에만 하는 것 s[i][0] = s[i-1][0] + s[i-1][1] + s[i-1][2], 아무것도 배치하지 않으므로 그 전 경우에서 모든 상황에 배치가 가능하다. s[i][1] = s[i-1][0] + s[i-1][2], s[i-1][1]은 배치할 수 없으므로 더하지 않는다. s[i][2] = s[i-1][0] + s[i-1][1], s[i-1][2]는 배치할 수 없으므로 더하지 않는다. 위 수식에서 미루어 보았을 때 사자의 배치를 가로 또는 세로 한칸 떨어진 상황에서는 하지 못하므로 각자의 상태에 따라 추가되는 경.. (C++) - 백준(BOJ) 1406번 : 에디터 https://www.acmicpc.net/problem/1406 1406번: 에디터 문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 www.acmicpc.net 간단한 링크드 리스트 구현 문제였습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2.. (C++) - 백준(BOJ) 11969번 : Breed Counting 간단한 구간 합 구하기 문제였습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include #include #include using namespace std; int cow[4][100001]; int main() { int n, q; ios::sync_with_stdio(false); cin.tie(NULL); cin >> n >> q; for (int i = 1; i > num; cow[num][i]++; cow[1][i] += cow[1][i - 1]; cow[2][i] += cow[2][i - 1]; cow[3][i] += cow[3][i - 1]; } while (q--) { int a;.. 이전 1 ··· 210 211 212 213 214 215 216 ··· 268 다음