본문 바로가기

[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..
[Mac] 맥 자바 openjdk@17 설치 및 intellij에 JDK등록 homebrew로 java 설치 iterm을 켜준다 brew install openjdk@17 echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc source ~/.zshrc 자바 설치시에 ~ 에서(홈 디렉토리에서) 하는 것을 추천한다 echo문은 홈 디렉토리에 환경변수를 저장하는 .zshrc 라는 파일에 환경변수를 추가하는 구문이다 실제로 홈 디렉토리에서 vi ./zshrc 한 후 쭉 내리면 이렇게 등록된 것을 볼 수 있다 나가려면 :q (enter)로 나갈 수 있다 자세한 vim 사용법은 다루지 않는다 이제 환경변수 등록도 끝났으니 자바 버전을 확인해보자 이렇게 뜨면 성공!! Intellij에서 제공하는 java 17을 사용..
플로이드 워셜 : 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..
[Windows] 윈도우 cmd 명령어 폴더 생성 : mkdir "폴더명" 폴더 삭제 : rd "폴더명" (띄어쓰기 없으면 "" 없어도 됨) 파일 생성 : copy con 파일이름.파일종류 다음 칸에서 깜빡거리면 파일 내부에 들어갈 내용 쓰기 다 쓰면 ctrl + c로 끄기 폴더 내부 파일 확인 : dir 폴더 이동 : cd
비트마스킹 : 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): # 경로 압축 사용 # 루트 노드가 아니라면, 루트 노드를 찾을 때까지 재귀적으로 호출..
[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..