알고리즘204 [백준] 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. [백준] 2503번 - 숫자야구 (C++) 문제 및 풀이 문제) 백준 - 구현 - 숫자 야구 -> www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 분명 파이썬으로 풀 때는 쉬웠는데... 막상 C++로 구현하려니 어려웠던 문제. 구현 능력을 간과하지 말자. 소스 코드) 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. [백준] 1629번 - 곱셈 (C++) 문제 및 풀이 문제) 백준 - 분항정복을 이용한 거듭제곱 - 곱셈 -> www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 중간에 c로 나누어서 수를 작게 만드는게 핵심인 문제. 계산해야할 지수가 홀수,짝수로 나누어 지수법칙 적용. C++ 소스 코드) 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. [백준] 1005번 - ACM Craft (파이썬) 문제 및 풀이 문제) 백준 - 위상 정렬 (Topology Sort) - ACM Craft -> www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N 과 건물간의 건설순서규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 건물 간의 건설 순서 규칙이 주어졌을 때, 건물 W를 건설 완료를 위해 드는 최소 시간을 출력한다. 규칙(선후관계)이 존재하므로 위상정렬을 이용하여 문제를 해결한다. 진입 차수가 0인 것을 제거해가며 건물 W가 나오면 즉시 시간을 출력한다. Topology Sort ->2021.03.10 - [Algorithm_note/Al.. 2021. 3. 30. 이전 1 ··· 17 18 19 20 21 22 23 다음 반응형