본문 바로가기

알고리즘 풀이58

[백준/Python] 1010번: 다리 놓기 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 조합 라이브러리를 사용하여 풀었더니 시간초과가 발생. from itertools import combinations t = int(input()) for _ in range(t): # bCa 로 조합을 사용한다. b개에서 a개를 뽑는다 a, b = map(int, input().split()) arr = [] for i in range(1, b + 1): arr.append(i) print(len.. 2023. 1. 6.
[백준/Python]1149번 : RGB거리 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net import sys n = int(sys.stdin.readline()) arr = [] for _ in range(n): arr.append(list(map(int, sys.stdin.readline().split()))) for i in range(1, len(arr)): arr[i][0] += min(arr[i - 1][1], arr[i - 1][2]) arr[i][1].. 2023. 1. 5.
[백준/Python] 10026번: 적록색약 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net import copy import sys sys.setrecursionlimit(10**6) n = int(input()) # 2차원 리스트의 맵 정보 입력받기 graph = [] for i in range(n): graph.append(list(sys.stdin.readline())) # copy 라이브러리를 통해 리스트 복사 graph2 = copy.deepcopy(graph) resu.. 2023. 1. 4.
[Python] 이진 탐색 라이브러리 from bisect import bisect_left, bisect_right a = [1, 2, 3, 4, 8] x = 4 # bisect_left(a,x) : 정렬된 순서를 유지하면서 배열 a에 x를 삽입할 가장 왼쪽 인덱스 반환 # bisect_left(a,x) : 정렬된 순서를 유지하면서 배열 a에 x를 삽입할 가장 오른쪽 인덱스 반환 print(bisect_left(a, x)) # 2 출력 print(bisect_right(a, x)) # 4 출력 # 값이 특정 범위에 속하는 데이터 개수 구하기 # 값이 [left_value , right_value]인 데이터의 개수를 반환하는 함수 def count_by_range(a, left_value, right_value): right_index = .. 2023. 1. 2.
[백준/Python] 25305번 : 커트라인 https://www.acmicpc.net/problem/25305 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net n, k = map(int, input().split()) a = list(map(int, input().split())) a.sort(reverse=True) print(a[k-1]) 2023. 1. 2.
[백준/Python] 2563번 색종이 https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net v = int(input()) # 100*100 배열 선언 arr = [[0] * 100 for _ in range(100)] cnt = 0 for _ in range(v): a, b = map(int, input().split()) # 색종이 크기가 도화지를 넘어 갈 경우 if b + 10 >= 100 and a + 10 >= 100: for i in range(b, 100): for j in ra.. 2023. 1. 2.