[Coding Test]

    [백준] 12100 파이썬(python) : 2048 (Easy)

    [백준] 12100 파이썬(python) : 2048 (Easy)

    12100번 : 2048 (Easy) 예제2) 4 2 0 2 8 0 0 2 2 0 0 0 0 0 0 0 0 # 16 예제3) 4 2 4 16 8 8 4 0 0 16 8 2 0 2 8 2 0 # 32 백트래킹 문제이다. 상하좌우 블록을 미는 함수를 구현해주는것이 포인트인데 블록들을 비교하기 위해 특정 위치를 가리키는 포인터를 사용할 수 있다. 블록을 위로 미는 과정을 생각하면 열의 첫번째 행을 포인터로 설정하고 열의 두번째 행부터 현재행으로 설정하여 포인터와의 비교를 해주며 블록을 밀 수 있다. 포인터와의 비교를 위해서는 항상 현재 가리키는 블록은 0이 아닌 블록이어야 한다. 포인터와 현재행이 만나수 있는 경우는 3가지가 있는데 다음과 같다. 포인터가 가리키는 블록이 0일때 포인터가 가리키는 블록이 현재블..

    [백준] 2776 파이썬(python) : 암기왕

    [백준] 2776 파이썬(python) : 암기왕

    2776번 : 암기왕 틀린코드) import sys t = int(sys.stdin.readline()) for _ in range(t): n = int(sys.stdin.readline()) note1 = list(map(int, sys.stdin.readline().split())) m = int(sys.stdin.readline()) note2 = list(map(int, sys.stdin.readline().split())) note1.sort() def binary_search(start, end, target): while start

    [백준] 17219 파이썬(python) : 비밀번호 찾기

    [백준] 17219 파이썬(python) : 비밀번호 찾기

    17219번 : 비밀번호 찾기 import sys n, m = map(int, sys.stdin.readline().split()) hash = {} for _ in range(n): string = sys.stdin.readline().split() if string[0] not in hash: hash[string[0]] = string[1] for _ in range(m): site = sys.stdin.readline().rstrip() print(hash[site])

    [백준] 15686 파이썬(python) : 치킨 배달

    [백준] 15686 파이썬(python) : 치킨 배달

    15686번 : 치킨 배달 전체 치킨집에서 폐점시키지 않고 남겨둘 m개의 치킨집을 뽑는다.(이때 순서는 상관없으므로 순열이 아닌 조합이 된다.) 각 집을 기준으로 거리가 가장 가까운 치킨집을 구한다.(치킨거리) 그리고 치킨거리를 모두 더하면 도시의 치킨거리가 된다. 도시의 치킨거리 중 가장 작은 값을 출력! 조합을 이용한 풀이) import sys from itertools import combinations n, m = map(int, sys.stdin.readline().split()) graph = [ list(map(int, sys.stdin.readline().split())) for _ in range(n) ] res = sys.maxsize house, chicken = [], [] for ..

    [백준] 10819 파이썬(python) : 차이를 최대로

    [백준] 10819 파이썬(python) : 차이를 최대로

    10819번 : 차이를 최대로 백트래킹을 이용한 풀이) import sys n = int(sys.stdin.readline()) number = list(map(int, sys.stdin.readline().split())) temp, res = [], [] #1 def backTracking(depth): if depth == n: #2 t = 0 for i in range(n-1): #3 t += abs(number[temp[i+1]] - number[temp[i]]) res.append(t) return for i in range(n): if i not in temp: #4 temp.append(i) backTracking(depth+1) #5 temp.pop() backTracking(0) pri..

    [백준] 2251 파이썬(python) : 물통 - (★)

    [백준] 2251 파이썬(python) : 물통 - (★)

    2251번 : 물통 문제를 읽는 순간 1697번 : 숨바꼭질 같은 문제라고 생각했다. bfs를 이용한 정형화되어있지 않은 유형이라 생각했는데 부피가 A인 물통이 비어있을 때 C물통의 용량을 구하는 방법은 q.popleft()로 꺼내줄때 조건문을 사용하면 되지만,다른 물통으로 물을 옮기는것을 구현하는 방법과 방문처리를 구현하는 방법이 떠오르지 않았다. 완전탐색으로 A에서 B, C로 옮길때 B에서 A, C로 옮길때 C에서 A, B로 옮길때 6가지 경우를 모두 따져야하며 물을 따를때마다 A물통의 양이 0인 경우를 찾아야 한다. 문제의 조건에서 C물통은 처음 시작할때 가득 채워져 있고 나머지 두 물통은 비워져 있닥고 했으므로 물의 총량은 고정이다. 그래서 C물통의 남아있는 양인 z를 구하는 공식은 z = C-x..