본문 바로가기

algorithm

(49)
[C++] BOJ 1715 카드 정렬하기 문제 백준 1715번 카드 정렬하기 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 코드 #include #include #include using namespace std; int n, ans = 0; int main() { priority_queue pq; cin >> n; for (int i = 0; i > num; pq.push(num); } while (pq.size()>1)..
[C++] BOJ 1862 미터계 문제 백준 1862번 미터계 https://www.acmicpc.net/problem/1862 1862번: 미터계 첫째 줄에 미터계에 표시된 거리가 주어진다. 단, 이 거리는 정수이고, 1 이상 999,999,999 이하이다. www.acmicpc.net 코드 #include #define ll long long using namespace std; string n; ll ans; int toD(int num) { if (num > n; int base; for (int i = 0; i < n.length(); i++) { ans = ans * 9 + toD(n[i] - '0'); } cout
[C++] BOJ 1863 스카이라인 쉬운거 문제 백준 1863번 https://www.acmicpc.net/problem/1863 1863번: 스카이라인 쉬운거 첫째 줄에 n이 주어진다. (1≤n≤50,000) 다음 n개의 줄에는 왼쪽부터 스카이라인을 보아 갈 때 스카이라인의 고도가 바뀌는 지점의 좌표 x와 y가 주어진다. (1≤x≤1,000,000. 0≤y≤500,000) 첫 번째 지점 www.acmicpc.net 코드 #include #include using namespace std; int n; stack s; int main() { cin >> n; int cnt = 0; s.push(0); for(int i=0; i> a>>b; if (s.top() b) {..
[C++] BOJ 9095 1, 2, 3 더하기 문제 백준 9095번 Adding 1s, 2s, and 3s https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 코드 #include #include using namespace std; int n, t; int dp[15]; int main() { cin >> t; dp[1] = 1; dp[2] = 2; dp[3] = 4; for (int i = 4; i > n; cout
[C++] BOJ 1932 삼각형 문제 백준 1932번 The Triangle https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 코드 #include #include using namespace std; int triangle[501][501], dp[501][501]; int n; int main() { cin >> n; for (int i = 1; i triangle[i][j]; } } dp[1][1] = triangle[1][1]; int ans = 0; for (int i = 1; i
[C++] BOJ 11048 이동하기 문제 백준 11048번 이동하기 https://www.acmicpc.net/problem/11048 11048번: 이동하기 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 www.acmicpc.net 코드 #include #include using namespace std; int n, m; int maze[1001][1001]; long long dp[1001][1001]; int main() { cin >> n >> m; for (int i = 1; i maze[i][j]; } } dp[1][1] = maze[1][1]; for (int i =..
[C++] BOJ 4358 생태학 문제 백준 4358번 Hardwood Species https://www.acmicpc.net/problem/4358 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 코드 #include #include #include using namespace std; mapm; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); string str; float cnt = 0; while (getline(cin, str)) { cnt+..
[C++] BOJ 14425 문자열 집합 문제 백준 14425번 https://www.acmicpc.net/problem/14425 코드 #include #include #include using namespace std; int n, m, cnt=0; map given; int main() { cin >> n >> m; string str; for(int i=1;i> str; given.insert(make_pair(str, i)); } while (m--) { cin >> str; if (given.find(str) != given.end()) { cnt++; } } cout