본문 바로가기

파이썬53

[백준] 1715번 - 카드 정렬하기 (C++/파이썬) 문제 및 풀이 문제) 백준 - 우선순위 큐 (Priority Queue) - 카드 정렬하기 ->www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net C++ 소스 코드) 파이썬 소스 코드) 2021. 4. 14.
[백준] 11279번 - 최대 힙 (C++/파이썬) 문제 및 풀이 문제) 백준 - 우선순위 큐 (Priority Queue) - 최대 힙 -> www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net C++ 소스 코드) 파이썬 소스 코드) 2021. 4. 14.
[백준] 1927번 - 최소 힙 (C++/파이썬) 문제 및 풀이 문제) 백준 - 우선수위 큐 (Priority Queue) - 최소 힙 -> www.acmicpc.net/problem/1927 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net C++은 최소 힙 구현을 위해서 다음과 같이 선언한다. 기본은 최대 힙. 파이썬과 반대이므로 헷갈리지 않도록 유의하자. priority_queue heap; C++ 소스 코드) 파이썬 소스 코드) 2021. 4. 14.
[백준] 1181번 - 단어 정렬 (C++/파이썬) 문제 및 풀이 문제) 백준 - 정렬(Sort) - 단어 정렬 -> www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 길이가 짧은 순으로 정렬해주되, 길이가 같을 경우 사전 순으로 정렬한다. 자신이 사용하는 언어의 정렬 Tool을 잘 활용한다면 어렵지 않은 문제. C++ 소스 코드) 파이썬 소스 코드) 2021. 4. 14.
[백준] 1991번 - 트리 순회 (C++/파이썬) 문제) 백준 - 트리 - 트리 순회 -> www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 www.acmicpc.net 기본적인 트리 순회 문제. 트리 문제라 해서 struct, Tree에 얽매이지 말자. C++ 소스 코드) 파이썬 소스 코드) 2021. 4. 14.
[백준] 2437번 - 저울 (C++/파이썬) 문제) 백준 - 그리디 알고리즘 (Greedy) - 저울 -> www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 문제를 오랜 시간 관찰했지만... 누적합이라는 느낌은 왔지만 알고리즘의 핵심을 찾지 못했다. 결국 3일 고민후, 답을 봤지만... 이건 뭐 풀이가 이해가 가지 않았다. 수학적 귀납법스러웠는데 쉽게 납득이 되지 않았다. 그러던 중 엄청난 풀이를 발견했다. 백준 2437 풀이 및 해설 (aerocode.net) 백준 2437 풀이 및 해설 개요 매우 복잡해보이는 .. 2021. 4. 13.
[백준] 2579번 - 계단 오르기(C++/파이썬) 문제 및 풀이 문제) 백준 - 동적 계획법 (Dynamic Programming) - 계단 오르기 -> www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net Python 코드는 바텀업(Bottom-Up), C++코드는 탑다운(Top-Down)으로 구현했다. C++ 소스 코드) Python 소스 코드) 2021. 4. 9.
[백준] 2217번 - 로프 (파이썬/C++) 문제 및 풀이 문제) 백준 - 그리디 알고리즘 (Greedy) - 로프 -> www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 그리디(Greedy) 같으면서도 완전 탐색(Brute Force) 같던 문제. 어렵지 않게 풀 수 있다! C++ 소스코드) 파이썬 소스코드) 2021. 4. 5.
[백준] 11726번 - 2xn 타일링 (파이썬/C++) 문제 및 풀이 문제) 백준 - 동적 계획법(Dynamic Programming) - 2xn 타일링 -> www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 점화식을 다음과 같이 작성할 수 있다. f(n) = f(n - 1) + f(n - 2) 파이썬 소스 코드는 위 점화식을 이용해서 작성했고, C++에서는 기저 사례(n = 1, n =2)의 설정과 재귀를 통해 답을 계산한다. 파이썬 소스코드) C++ 소스코드) 2021. 3. 30.
반응형