python 80

[백준] 1654 랜선자르기 python

www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net K, N = map(int, input().split()) N_list = [int(input()) for _ in range(K)] result = 0 s, e = 1, max(N_list) while s m의 값이 큰경우 => m을 줄이는 방향 e = m - 1 else: s = m + 1 result = max(result, m) # 랜선의 최대 길이를 찾아야 하므로 print..

STUDY/Algorithm 2021.04.28

[백준] 1707 이분 그래프 python

www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 www.acmicpc.net import sys input = sys.stdin.readline from collections import deque K = int(input()) for tc in range(K): V, E = map(int, input().split()) # 인접 리스트 link_arr = [list() for _ in range(V + 1)] for _ in range(E): n1, n2 = map(int..

STUDY/Algorithm 2021.04.27

[프로그래머스] LEVEL3 정수삼각형, python

programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr def solution(triangle): dp = [[0] * i for i in range(1, len(triangle) + 1)] dp[0][0] = triangle[0][0] for i in range(1, len(dp)): for j in range(len(dp[i])): if j == 0: dp[i][j] = triangle[i][j] + dp[i - 1][j] elif j == len(dp[i]) - 1: dp[i][j] = triangl..

STUDY/Algorithm 2021.04.22

[백준] 1753 최단경로 python

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 from heapq import heappop, heappush input = sys.stdin.readline N, E = map(int, input().split()) K = int(input()) link = [list() for _ in range(N + 1)] for _ in range(E): n1, n2, w = map(int, input().split(..

STUDY/Algorithm 2021.04.22

[프로그래머스] 모두 0으로 만들기, 월간 코드 챌린지, python

programmers.co.kr/learn/courses/30/lessons/76503 코딩테스트 연습 - 모두 0으로 만들기 각 점에 가중치가 부여된 트리가 주어집니다. 당신은 다음 연산을 통하여, 이 트리의 모든 점들의 가중치를 0으로 만들고자 합니다. 임의의 연결된 두 점을 골라서 한쪽은 1 증가시키고, 다른 한 programmers.co.kr 대회 당일에는 트리로 만들면 될거같긴한데 그이후에 어떻게 접근해야할지 몰랐다. if sum(a): return -1 만 해놓고 그이후엔 트리로 풀면되지 않을까하고 뚱땅뚱땅하긴했지만 33점인가 나왔다. a = [0,-5,2,1,2] edges = [[0,1],[3,4],[2,3],[0,3]] def solution(a, edges): # sum이 0이 아니면 ..

STUDY/Algorithm 2021.04.18

[백준] 13460 구슬 탈출2 python

www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net delta = [(-1, 0), (1, 0), (0, -1), (0, 1)] def backtrack(inboard, inred, inblue, ind=0): global result, cnt, delta # if result == 1: # return if ind == 10: return else: for i in range(4): tmp_board = [in..

STUDY/Algorithm 2021.04.14

[백준] 13459 구슬 탈출 python

www.acmicpc.net/problem/13459 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net delta = [(-1, 0), (1, 0), (0, -1), (0, 1)] def backtrack(inboard, inred, inblue, ind=0, arr=[]): global result, delta if result == 1: return if ind == 10: return else: for i in range(4): tmp_board = [inboa..

STUDY/Algorithm 2021.04.14

[백준] 2579 계단오르기 python

www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net n = int(input()) stair = [0] + [int(input()) for _ in range(n)] if n == 1: print(stair[-1]) else: dp = [0] * (n + 1) dp[0] = stair[0] dp[1] = max(stair[0] + stair[1], stair[1]) dp[2] = max(stair[0] + stair[2], stair[1] + stair[2]) for i i..

STUDY/Algorithm 2021.04.13

[프로그래머스] LEVEL2 문자열 압축, python

programmers.co.kr/learn/courses/30/lessons/60057# 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr def solution(s): len_s = len(s) answer = len_s if len_s == 1: return answer cnt = 1 while cnt < len_s //2 + 1: i = 0 zip_val = 0 zip_string = '' while i < len_s: tmp_s = s[i:i + cnt] if tmp_s == s[i + cnt:i..

STUDY/Algorithm 2021.04.04

[프로그래머스] LEVEL2 삼각 달팽이, python, C

programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr def solution(n): n_list = [[0] * i for i in range(1, 1 + n)] max_val = (n ** 2 + n) // 2 cnt = 0 x, y = 0, 0 direction = [(1, 0), (0, 1), (-1, -1)] dir_num = 0 while cnt < max_val: cnt += 1 n_list[x][y] = cnt dx = x..

STUDY/Algorithm 2021.04.04