본문 바로가기

[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로 바꿀 수 있다
[Python] Dictionary 사전 딕셔너리 키를 기반으로 값을 저장하는 자료형 생성, 접근 dictionary={'key':'value','list':[1,2,3]} print(dictionary['key']) print(dictionary['list'][1]) >>>value 2 key로 제거 dictionary={'key':'value','list':[1,2,3]} print(dictionary) del dictionary['key'] print('del 이후', dictionary) >>>{'key': 'value', 'list': [1, 2, 3]} del 이후 {'list': [1, 2, 3]} in 사용 시 dictionary={'key':'value','list':[1,2,3]} if 'list' in dictionary: print..
[Python] 파괴적 함수와 비파괴적 함수 파괴적 함수와 비파괴적 함수 파괴적 함수 : 원본을 변화시키는 함수 비파괴적 함수 : 원본을 변화시키지 않는 함수 파괴적 함수 list.append() list.extend() list.insert() list.pop() del list[], dictionary[key] list.remove() list.clear() list.reverse() 비파괴적 함수 string.upper() string.lower() trim 기능 함수 string.strip(), string.lstrip(), string.rstrip() sorted(list) reversed(list) 슬라이싱
[Python] 이스케이프 문자 Escape Character 역슬래시 기호 \ 와 조합해서 사용하는 특수한 문자 한국어 키보드에서 원화 기호를 누르면 된다 문자열 내부에서 따옴표를 사용하고 싶을 때 사용할 수 있다 \' : ' 출력 \n : 개행 \t : 탭 \ : 개행 취소 ( 여러 줄 출력 시에) \\ : 역슬래시 출력 print("""\ 따옴표 쓰고싶어 \' 이렇게 개행 두번 하기 \n 탭 출력\t하기 역슬래시 출력\\ 개행 취소\ """) >>> 따옴표 쓰고싶어 ' 이렇게 개행 두번 하기 탭 출력 하기 역슬래시 출력\ 개행 취소 (게시물로 만들면 역슬래시가 원화문자로 바뀌어서 보이기 때문에 헷갈리지 않아도 됩니다) if num==1 \ or num==2 \ or num==3: print('hi') 이렇게 조건문이 길어질 때도 이스케이프 코드를 사용할 수 있..
[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됨 -> 특성값이 ..