본문 바로가기

728x90
반응형
SMALL

BAEKJOON

(568)
백준 13975번 [파일 합치기 3](C++) -yes6686- 티스토리 백준 문제 풀이: 13975 파일 합치기 3문제 링크: https://www.acmicpc.net/problem/13975문제 설명:소설가가 여러 파일을 하나로 합치는 문제입니다. 두 파일을 합칠 때 비용은 두 파일 크기의 합이며, 임의의 두 파일을 선택하여 합칠 수 있습니다. 모든 파일을 최종적으로 하나로 만들 때 필요한 최소 비용을 구해야 합니다. 예를 들어 파일 크기가 [40, 30, 30, 50]일 때, 30+30=60, 40+60=100, 100+50=150으로 총 310이 되지만, 최적으로 합치면 300으로 줄일 수 있습니다. 허프만 코딩 원리를 활용한 그리디 알고리즘 문제입니다.문제 해결 코드#include #include using namespace std;int main() { io..
백준 9550번 [아이들은 사탕을 좋아해](C++) -yes6686- 티스토리 백준 문제 풀이: 9550 아이들은 사탕을 좋아해문제 링크: https://www.acmicpc.net/problem/9550문제 설명:아이들에게 사탕을 나눠주는 문제입니다. n개의 서로 다른 종류의 사탕이 있고, 한 아이에게는 k개의 사탕을 줘야 합니다. 각 아이는 서로 다른 종류의 사탕만 받을 수 있으며, 한 종류의 사탕에서 여러 개를 가져갈 수 있습니다. 각 사탕 종류별 개수가 주어질 때, 최대 몇 명의 아이들에게 사탕을 나눠줄 수 있는지 구하는 간단한 나눗셈 수학 문제입니다.문제 해결 코드#include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); int T; cin >> T;..
백준 2526번 [싸이클](C++) -yes6686- 티스토리 백준 문제 풀이: 2526 싸이클문제 링크: https://www.acmicpc.net/problem/2526문제 설명:두 자연수 N과 P가 주어질 때, N에서 시작하여 현재 값에 N을 곱하고 P로 나눈 나머지를 구하는 과정을 반복합니다. 이 과정에서 나타나는 수들은 반복되는 구간(싸이클)을 형성하게 됩니다. 예를 들어 N=67, P=31이면 25 → 30 → 9 → 11 → 23 → 25로 싸이클이 형성됩니다. 반복되는 싸이클의 길이를 구하는 수학/시뮬레이션 문제입니다.문제 해결 코드#include using namespace std;int visited[1001]; // 각 숫자가 몇 번째 단계에서 등장했는지 기록int main() { ios::sync_with_stdio(false); ..
백준 2511번 [카드놀이](C++) -yes6686- 티스토리 백준 문제 풀이: 2511 (카드놀이)문제 링크: https://www.acmicpc.net/problem/2511문제 설명 (요약)A와 B가 각각 10장의 카드를 순서대로 뒤집으며 각 라운드의 숫자를 비교합니다. 각 라운드에서 더 큰 숫자를 낸 사람은 3점을 얻고, 숫자가 같으면 둘 다 1점씩 얻습니다. 10라운드를 모두 진행한 뒤 A와 B의 총점을 출력하고, 총점이 같다면 ‘마지막으로 이긴 사람’을 승자로 출력합니다. 단, 한 번도 승자가 나오지 않았다면 D를 출력합니다.문제 해결 코드// 주석 포함된 최적화된 코드#include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int a[1..
백준 3062번 [수 뒤집기](C++) -yes6686- 티스토리 백준 문제 풀이: 3062 (수 뒤집기)문제 링크: https://www.acmicpc.net/problem/3062문제 설명:양의 정수 n이 주어졌을 때, 이를 뒤집은 수와 원래 수를 더한 결과가 팰린드롬(앞뒤가 똑같은 수)인지 판별하는 문제이다. 입력은 여러 개의 테스트 케이스로 주어지며, 각 테스트마다 "YES" 또는 "NO"를 출력한다.문제 해결 코드#include #include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); int t; cin >> t; while (t--) { string s1; cin >> s1; // 문자열 뒤집기 ..
백준 10829번 [이진수 변환](C++) -yes6686- 티스토리 백준 문제 풀이: 10829 (이진수 변환)문제 링크: https://www.acmicpc.net/problem/10829문제 설명:주어진 10진수 정수 n(1 ≤ n ≤ 263 - 1)을 이진수로 변환하여 출력하는 문제이다. 즉, 2진수 표현에서 불필요한 앞자리 0을 제거하고 정확한 이진수를 출력해야 한다.문제 해결 코드#include using namespace std;// 재귀적으로 이진수 변환void toBinary(long long n) { if (n == 0) return; toBinary(n / 2); // 상위 비트부터 출력 cout > n; toBinary(n); // 이진수 출력 cout 코드 설명코드의 주요 로직과 사용된 알고리즘 설명:..
백준 4597번 [패리티](C++) -yes6686- 티스토리 백준 문제 풀이: 4597 (패리티)문제 링크: https://www.acmicpc.net/problem/4597문제 설명:주어진 문자열은 마지막 문자가 패리티 정보를 담고 있으며, 나머지 부분은 비트열이다. 마지막 문자가 e이면 전체 비트열의 1의 개수가 짝수가 되어야 하고, o이면 전체 비트열의 1의 개수가 홀수가 되어야 한다. 주어진 비트열과 패리티 정보를 이용하여 마지막 비트를 0 또는 1로 채워 출력하는 문제이다. 입력은 여러 줄로 주어지며, 문자열이 #일 때 종료된다.문제 해결 코드#include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); while (true) { str..
백준 3449번 [해밍 거리](C++) -yes6686- 티스토리 백준 문제 풀이: 3449 (해밍 거리)문제 링크: https://www.acmicpc.net/problem/3449문제 설명:두 문자열이 주어졌을 때, 같은 위치에 있는 문자가 서로 다르면 이를 1로 세어 합산한 값을 해밍 거리(Hamming Distance)라고 한다. 입력으로 여러 개의 문자열 쌍이 주어질 때, 각 쌍의 해밍 거리를 계산하여 출력하는 프로그램을 작성하라.문제 해결 코드#include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; while (n--) { string a, b; cin >> a >> b; ..

728x90
반응형
LIST