https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 내 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(100000) n = int(input()) board = [list(map(int, input().split())) for i in range(n)] def dfs(x, y, h): dx = [1, -1, 0,0] dy = [0,0,1,-1] for i in range(4): nx = d..
https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 내 코드 import sys from collections import deque input = sys.stdin.readline n, k = map(int, input().split()) board = [0 for i in range(100001)] def bfs(n): q = deque([n]) while q: x = q.popleft() if x == k: retu..
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 내 코드 import sys from collections import deque input = sys.stdin.readline n, m = map(int, input().split()) board = [list(map(int, input().rstrip())) for i in range(n)] #최소의 칸 수 = bfs, queue q = deque([(0,0)]) dx = [1,-1,0,0] dy = [0,0,1,-1] w..
최대공약수 GCD(Greatest Common Divisor) : 두 수 혹은 그 이상의 수들의 공통인 약수 중 가장 최대인 수 10의 약수 - 1, 2, 5, 10 20의 약수 - 1, 2, 4, 5, 10, 20 10과 20의 최대 공약수 - 10 최소공배수 LCM(Least Common Multiple) : 두 수 혹은 그 이상의 수들의 공통인 배수 중 가장 최소인 수 10의 배수 - 10, 20, 30, 40, 50... 20의 배수 - 20, 40, 60, 80, 100... 10과 20의 최대공배수 - 20 For 문을 이용한 최대 공약수, 최소 공배수 구하기 최소공배수 for i in range(max(a, b), (a * b) + 1): #최소공배수 if i % a == 0 and i % ..
https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 def solution(phone_book): answer = True phone_book.sort() for i in range(len(phone_book)-1): if len(phone_book[i]) < len(phone_book[i+1]): if phone_book[i+1][:len(phone_book[i])] ==phone_book[i]: answe..
Heap이란 heap : '무엇인가를 차곡차곡 쌓아올린 더미' 라는 뜻이 있다. 말 그대로 힙은 항상 완전 이진 트리의 형태를 띤다. 우선순위 큐 데이터를 추가한 순서와 상관없이 데이터를 꺼낼 때 값을 오름차순하여 반환하는 자료구조 Heap 모듈을 통해 구현되어 있으며, 기본적으로 데이터를 정렬된 상태로 보관한다. 데이터 처리 속도 데이터의 삽입(put) & 삭제(get) : O(logN) 완전 이진 트리 구조이기 때문에 트리의 레벨이 늘어나면 노드의 수도 두 배씩 증가한다. 레벨이 늘어날수록 → 노드의 수도 증가한다. 그리고 '이진 트리'이다 = 2의 제곱씩 증가 레벨이 i일 때, i 레벨의 노드수는 2**(i-1)개이다. 힙(Heap)의 조건 최대 힙 : 자식 노드보다 부모 노드의 값이 크다. 최소 ..
https://school.programmers.co.kr/learn/courses/30/lessons/43164?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 from collections import defaultdict def solution(tickets): answer = [] dic = defaultdict(list) tickets.sort(key= lambda x : (x[0], x[1])) for [start, end] in tickets: dic[start].append(end) for k in di..
defaultdict dict의 서브 클래스이다. 기본값을 설정할 수 있도록 도와주는 함수이다. 여러가지의 기본값을 설정할 수 있도록 한다. from collections import defaultdict d = defaultdict(int) print(d) # d(, {}) d = defaultdict(dict) print(d) # d(, {}) d = defaultdict(list) print(d) # d(, {}) int #기본값 = 0 dict #기본값 = 비어있는 dict {} list #기본값 = 비어있는 list [] 사용법 name = [('강', '동원'), ('정','우성'), ('송','강호')] dic = defaultdict(list) for lastname, firstname i..