문제 풀이262 [Python] 백준 1753번 : 최단경로 https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 💡 문제 풀이 그래프 이론 중 다익스트라 알고리즘 문제이다. 다익스트라 알고리즘을 알면 바로 풀려 딱히 풀이는 없어도 될 것 같다. ✔️ 느낀 점 처음에는 나만의 코드로 작성하려고 했는데 이상하게 계속 시간 초과가 발생하길래 리스트로 바꾸어주고 언패킹도 모두 해주었다. 확실히 리스트가 시간이 좀 빠르긴 한가보다. 💻 코드 import sys, heapq inp.. 2022. 8. 1. [Python] 백준 10819번 : 차이를 최대로 https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 💡 문제 풀이 브루트 포스 문제이다. permutation으로 6자리의 순열을 만들어 셈을 해준 후 최댓값을 최신화해주면 된다. ✔️ 느낀 점 처음에 어떤 공식을 만들려고 생각했지만 굳이 그럴 필요가 없음을 알게되어서 바로 해결했다. 💻 코드 import sys, itertools input = sys.stdin.readline N = int(input()) arr = list(map(int, input().s.. 2022. 8. 1. [Python] 백준 1182번 : 부분수열의 합 https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 💡 문제 풀이 브루트 포스 문제이다. 부분 수열을 만들어서 합이 목표값과 같은지만 확인해주면 된다. itertools의 combination을 사용하면 부분 수열을 쉽게 만들 수 있다. ✔️ 느낀 점 그렇게 어려운 문제는 아니었다. 💻 코드 import sys from itertools import combinations input = sys.stdin.read.. 2022. 7. 31. [Python] 백준 2623번 : 음악프로그램 https://www.acmicpc.net/problem/2623 2623번: 음악프로그램 첫째 줄에는 가수의 수 N과 보조 PD의 수 M이 주어진다. 가수는 번호 1, 2,…,N 으로 표시한다. 둘째 줄부터 각 보조 PD가 정한 순서들이 한 줄에 하나씩 나온다. 각 줄의 맨 앞에는 보조 PD가 담당한 www.acmicpc.net 문제 풀이 그래프 이론 중 위상정렬 문제이다. 위상정렬 알고리즘을 알고 있다면 쉽게 풀 수 있는 문제이다. 느낀 점 위상정렬에 대해서 한번 짚고 넘어갈 수 있는 문제가 되었다. 코드 import sys input = sys.stdin.readline N, M = map(int, input().split()) graph = [[] for _ in range(N+1)] indegr.. 2022. 7. 31. [Python] 백준 1107번 : 리모컨 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 💡 문제 풀이 브루트 포스 문제이다. 모든 경우를 따져주면 된다. 백만까지 범위의 모든 숫자를 따져서 가장 낮은 값을 찾아주면 된다. 주어진 범위는 50만까지인데 더 따지는 이유는 500,000 채널을 가려고 하는데 1, 2, 3, 4, 5가 고장 났을 경우 100에서 499,900번을 누르는 게 정답이 아니라 600,000에서 100,000번을 - 누르는게 정답인 경우가 있기 때.. 2022. 7. 30. [Python] 백준 1759번 : 암호 만들기 https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 💡 문제 풀이 백트래킹 문제이다. 주어진 길이까지 백트래킹을 실시하고 주어진 조건만 맞추면 된다. 백트래킹의 기본이라고 볼 수 있다. ✔️ 느낀 점 브루트포스인 줄 알고 풀었는데 백트래킹 문제였다. 💻 코드 import sys l, c = map(int, sys.stdin.readline().split()) words = sorted(list(map(str, sys.stdin.readline().spl.. 2022. 7. 29. 이전 1 ··· 9 10 11 12 13 14 15 ··· 44 다음