본문 바로가기

[Algorithm] 백준 BOJ 2630 색종이 만들기 python 파이썬 분할정복 실버2 Private 난이도 : ♥♥♡♡♡ 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net import sys input=sys.stdin.readline n=int(input().strip()) graph=list() for i in range(n): graph.append(list(map(int,input().strip().split(' ')))) blue=0 white=0 direction=[[0,0,1,1],[0,1,0,1]] def check(n,x,y): color=graph[x..
플로이드 워셜 : Floyd Warshall 최단경로 알고리즘 중 플로이드 워셜 O(n**3)으로 노드 수가 적을 때 쓸 수 있다 하나의 정점에서 다른 정점까지의 최단거리를 구한다 # 노드의 개수 및 간선의 개수를 입력받기 n = int(input()) m = int(input()) # 2차원 리스트(그래프 표현)를 만들고, 모든 값을 무한으로 초기화 INF = int(1e9) # 무한을 의미하는 값으로 10억을 설정 graph = [[INF] * (n + 1) for _ in range(n + 1)] # 자기 자신에서 자기 자신으로 가는 비용은 0으로 초기화 for i in range(1, n + 1): graph[i][i] = 0 # 각 간선에 대한 정보를 입력 받아, 그 값으로 초기화 for _ in range(m): # A에서 B로 가는 비..
코딩테스트를 위한 파이썬 TIPS 조금씩 추가할 예정입니다지정한 우선순위로 Sortsorted(list, key = lambda x : (x[3],x[1] ... ))l=[[2,8], [1,3], [4,5],[2,7]]# 일반 sort -> 첫 번째 요소를 기준으로 하고 첫 번째 요소가 같으면 두 번째가 기준이 됨print(sorted(l))# >>> [[1, 3], [2, 7], [2, 8], [4, 5]]# 2번째 요소를 기준으로 sortprint(sorted(l, key = lambda x : (x[1], x[0])))# >>> [[1, 3], [4, 5], [2, 7], [2, 8]]# 오름차순, 내림차순# -를 붙이면, 현재 정렬 차순과 반대로 하게 된다print(sorted(l, key = lambda x : (x[0], -x..
비트마스킹 : Bit Masking 관련 Python 함수 비트마스킹에 대한 개념 설명은 생략 Bin(숫자) 10진수(int)를 2진수(str)로 바꿔준 num=6 # 110 print(bin(num)) print(type(bin(num))) 그래서 bin(num)[2:] 이렇게 앞의 '0b'를 없애줄 수 있다. 또한 이진수의 1을 셀 때 string이기 때문에 bin(num).count('1')을 사용할 수 있어 굉장히 편하다 int(x, n진수) num=6 # 110 x=bin(num) binary_to_demical = int(x, 2) print(binary_to_demical) 2진수였던 수를 다시 10진수로 바꾸려면 int로 바꿀 수 있다
유니온파인드 : Union Find : 서로소 집합 : 상호 배타적 집합 : Disjoint Set https://github.com/ndb796/python-for-coding-test/blob/master/10/3.py GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소스코드 저장소입니다. - GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소 github.com https://youtu.be/Ha0w2dJa2Nk def find(parent, x): # 경로 압축 사용 # 루트 노드가 아니라면, 루트 노드를 찾을 때까지 재귀적으로 호출..
[Algorithm] 백준 BOJ 2467 용액 python 파이썬 투포인터 골드5 Private 난이도 : ♥♥♡♡♡ 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net n=int(input()) seq=list(map(int,input().split(' '))) start=0 end=n-1 candidate=list() # [더한 특성값, 그 때 용액 1, 그 때 용액 2] while start0: # 0에 가까워져야 하니 작아져야함 end-=1 else: start+=1 # 0에 가까워져야 하니 커져야함 candidate.sort() # 특성값이 작은 것부터 sort됨 -> 특성값이 ..
[Algorithm] 백준 BOJ 1477 휴게소 세우기 python 파이썬 이분탐색 골드 4 Private 난이도 : ♥♥♥♥♡ 1477번: 휴게소 세우기 첫째 줄에 현재 휴게소의 개수 N, 더 지으려고 하는 휴게소의 개수 M, 고속도로의 길이 L이 주어진다. 둘째 줄에 현재 휴게소의 위치가 공백을 사이에 두고 주어진다. www.acmicpc.net import sys input=sys.stdin.readline n,m,l=map(int,input().rstrip().split(' ')) rest=[l] # 맨 마지막 길이까지 고려해야 함 if n!=0: # n=0일때 입력이 개행만 들어오는 것 처리 -> 런타임에러(Value Error)의 원인 x=list(map(int,input().rstrip().split(' '))) rest=rest+x rest.sort() low=1 high=l-1 ..
[Algorithm] 백준 BOJ 5904 Moo 게임 python 파이썬 분할정복 골드 5 Private 난이도 : ♥♥♥♡♡ 5904번: Moo 게임 Moo는 술자리에서 즐겁게 할 수 있는 게임이다. 이 게임은 Moo수열을 각 사람이 하나씩 순서대로 외치면 되는 게임이다. Moo 수열은 길이가 무한대이며, 다음과 같이 생겼다. m o o m o o o m o o m o o o www.acmicpc.net n=int(input()) def find_moo(partition,k,n): # [10,15,25], 2, 11 if k==0: # 가장 작은 단위일 때 if n==1: return 'm' else: return 'o' if n