[백준][Python] 1972번 놀라운 문자열 - 실버 3
·
백준/구현
https://www.acmicpc.net/problem/1972 문제 풀이주어진 문자열의 간격을 이중 for문 혹은 while과 for문으로 구성해서 풀 수 있습니다.그리고 만들어진 쌍은 집합에 저장하여 효율적인 공간을 구성해주었습니다. 코드# 1972번 놀라운 문자열ALERTS = ['is surprising.', 'is NOT surprising.']while 1: word = input() if word == "*": break ALERTS_idx = 0 # 문자열 확인 코드 작성. # 이중 for문을 활용하여서 for j in range(i, num) # 그러고 나서 set에 저장. 그러나 이미 존재한다면 break D = 1 while D..
[백준][Python] 1135번 뉴스 전하기 - 골드 2
·
백준/다이내믹 프로그래밍
https://www.acmicpc.net/problem/1135  문제 풀이깊이 우선 탐색과 DP를 활용하여 문제를  풀어주었습니다.DFS방식을 사용하여 리프 노드에 도달한 뒤, 리프 노드에서부터 오름차순으로 걸리는 시간을 계산해줍니다. 코드# 1135번 뉴스 전하기num = int(input())order = list(map(int, input().split()))tree = [[] for _ in range(num)]for idx, manager in enumerate(order): if idx != 0: tree[manager].append(idx)dp = [0 for _ in range(num)]def dfs(node): node_to_sub = [] for sub ..
[백준][Python] 14235번 크리스마스 선물 - 실버 3
·
백준/우선순위 큐
https://www.acmicpc.net/problem/14235 14235번: 크리스마스 선물 크리스마스에는 산타가 착한 아이들에게 선물을 나눠준다. 올해도 산타는 선물을 나눠주기 위해 많은 노력을 하고 있는데, 전세계를 돌아댕기며 착한 아이들에게 선물을 나눠줄 것이다. 하지만 www.acmicpc.net 문제 풀이 우선순위 큐를 활용해서 가치가 가장 높은 선물부터 아이들에게 나눠줄 수 있게 코드를 짰습니다. 코드 # 14235번 크리스마스 선물 from heapq import heappush, heappop n = int(input()) values = [] for _ in range(n): a = list(map(int, input().split())) if a[0] == 0: # 아이를 만났고 ..
[백준][Python] 1417번 국회의원 선거 - 실버 5
·
백준/우선순위 큐
https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 문제 풀이 다솜보다 높은 득표 수를 가진 후보자들이 없어질 때 까지 표를 뺏는 코드를 작성해주었다. 후보자들 중 가장 높은 득표 수를 가진 후보자의 표를 우선으로 매수했습니다. 코드 # 1417번 국회의원 선거 import sys from heapq import heappop, heappush, heapify n = int(input()) dasom_vote = int(input()) ..
[백준][Python] 15903번 카드 합체 놀이 - 실버 1
·
백준/우선순위 큐
https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 문제 풀이 주어진 카드들 중에서 가장 작은 숫자의 카드를 2장 뽑아서 합한 수를 두 카드의 숫자에 새롭게 넣어주면 된다. min()으로 구현해줘도 되지만, heapq르 활용하여 우선순위 큐 방법으로 풀어주었습니다. 코드 # 15903번 카드 합체 놀이 from heapq import heappush, heappop, heapify n , m = map(int,..
[백준][Python] 13717번 포켓몬 GO - 실버 5
·
백준/구현
https://www.acmicpc.net/problem/13717 13717번: 포켓몬 GO 첫 번째 예제에서 지우가 어떻게 뿔충이(Weedle)를 진화시켰는지 보자. 처음 진화를 위해 지우는 12개의 사탕을 사용하였지만 2개를 돌려받아 32개의 사탕이 남는다 (42-12+2). 두 번째 진화 후엔 22 www.acmicpc.net 문제 모바일 게임을 즐겨 하는 지우는 Jetpack Joyride 에 금새 질렸고 포켓몬 GO를 시작했다! 이 게임의 재미있는 점은 포켓몬을 진화시킬 수 있다는 것이다. 지우가 Pi 라는 포켓몬을 진화시키기 위해서는 해당 포켓몬의 Ki 개의 사탕이 필요하다. 진화가 된 후에는 2개의 사탕을 돌려받는다. 각 포켓몬은 그들 종의 사탕으로만 진화할 수 있다. 지우는 N종의 포켓몬..
[백준][Python] 1629번 곱셈 - 실버 1
·
백준/분할 정복
https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 문제 풀이 분할 정복을 통한 거듭제곱을 구하는 방법은 재귀문과 반복문으로 2개로 이루어져있습니다. 그 중 저는 반복문을 이용하여 문제를 풀어주었습니다. 자세한 분할정복을 통한 거듭제곱을 구하는 알고리즘에 대한 글은 아래 링크를 참고해주세요: https://sunghyun98.tistory.com/313 [알고리즘] 분할 정복을 이용한 거듭제곱 분할 정복(Divide and Conquer)을 사용한 거듭제곱 계산법은 수학적 문제 해결과 알고리즘 설계에서 매우 강력..
[백준][Python] 1715번 카드 정렬하기 - 골드 4
·
백준/스택 & 큐
https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 문제 풀이 우선순위 큐를 활용하여 문제를 구해주면 됩니다. 문제의 예시를 통해 직접 구해보면 알다시피 다음과 같은 로직이 성립하게 됩니다. 1. 큐 안에서 가장 작은 수 2개를 꺼내서 더해준다. 2. 더한 값을 총합(변수:ans)에 더해준다. 3. 더한 값을 다시 큐에 넣어준다. 4. 1-3과정을 큐 안에 원소가 2개 이상일 때까지 반복해준다. 코드 # 1715번 카드 정렬하기 fr..
개발자 성현
'백준' 카테고리의 글 목록