백준 / 물병 / 1052번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 물병 / 1052번 (골드 5단계)문제 사이트: https://www.acmicpc.net/problem/1052 문제 설명 나의 풀이# 문제의 핵심:# 1: 물병을 k개 이내로 만들어야한다.# 2: 물병에서 다른 물병으로 이동할 때는 같은 양의 물이 있어야 가능하다.# 3: 모든 물병은 1L를 가진채 시작한다.# 핵심 로직:# 문제를 자세히 살펴보면 총 물의 양은 2, 4, 6, 8, ... 2^n# 2의 제곱으로 증가한다 이걸 2진수로 나타내서 2진수에 존재하는 1의 개수가 k개 이내로 존재하면# 물병을 만들 수 있게 된다.# 물병을 구하는 함수def solution(n, k): # 최소한으로 들어간 물병의 개수 answer = 0 whil..
백준 / 연산자 끼워넣기 / 14888번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 연산자 끼워넣기 / 14888번 (실버 1단계)문제 사이트: https://www.acmicpc.net/problem/14888 문제 설명 나의 풀이INF = 1000000001def dfs(numbers, sign_word, n, count, current_result, used, answer): if count == n - 1: # 모든 연산자를 사용했으면 최댓값, 최솟값 갱신 answer[0] = max(current_result, answer[0]) answer[1] = min(current_result, answer[1]) return for i in range(n - 1): if not ..
백준 / 특정한 최단 경로 / 1504번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 특정한 최단 경로 / 1504번 (골 4단계)문제 사이트: https://www.acmicpc.net/problem/1504 문제 설명 나의 풀이import heapqfrom collections import defaultdictINF = 1e8def dijkstra(start, n, graph): """다익스트라 알고리즘을 사용해 start에서 모든 노드까지 최단 경로 계산""" distances = [INF] * (n + 1) distances[start] = 0 pq = [(0, start)] # (현재 거리, 현재 노드) while pq: current_distance, current_node = heapq.he..
백준 / 01타일 / 1904번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 01타일 / 1904번 (실버 3단계)문제 사이트: https://www.acmicpc.net/problem/1904 문제 설명 나의 풀이def solution(n): if n == 1: return 1 elif n == 2: return 2 # dp[N] = dp[N-1] + dp[N-2], % 15746 prev2 = 1 # dp[1] prev1 = 2 # dp[2] for i in range(3, n + 1): current = (prev1 + prev2) % 15746 prev2 = prev1 prev1 = current return prev1if _..
백준 / 감시 / 15683번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 감시 / 15683번 (골드 3단계)문제 사이트: https://www.acmicpc.net/problem/15683 문제 설명 나의 풀이# 깊은 복사import copy# CCTV별 감시 방향 정의 (상, 하, 좌, 우)directions = { 1: [[(0, 1)], [(0, -1)], [(1, 0)], [(-1, 0)]], # 단방향 2: [[(0, 1), (0, -1)], [(1, 0), (-1, 0)]], # 양방향 3: [[(-1, 0), (0, 1)], [(0, 1), (1, 0)], [(1, 0), (0, -1)], [(0, -1), (-1, 0)]], # 직각 방향 4: [[(-1, 0), (0, 1), (0, -1..
백준 / 생일수 I / 11883번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 생일수 I / 11883번 (골드 3단계)문제 사이트: https://www.acmicpc.net/problem/11883 문제 설명 나의 풀이def main(): import sys input = sys.stdin.read data = input().split() sz = 10**6 + 5 dp = [[0, float('inf')] for _ in range(sz)] dp[0] = [0, 0] # [숫자 구성 값, 자리수 합] # DP 배열 채우기 for i in range(sz): if dp[i][0] == 0 and i != 0: continue for digit i..
백준 / 소트인사이드 / 1427번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 소트인사이드 / 1427번 (실버 5단계)문제 사이트: https://www.acmicpc.net/problem/1427 문제 설명 나의 풀이if __name__ == "__main__": # 숫자를 입력 word = input() # str를 int 리스트로 변경 num = list(map(int, str(word))) # 내림차순으로 변경 num.sort(reverse = True) # 결과 값을 출력하는 for문 for i in num: print(i, end = '')※ 알아야 할 것# 숫자를 입력 word = input() # str를 int 리스트로 변경 num = list(ma..
백준 / 덩치 / 7568번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 덩치 / 7568번 (실버 5단계)문제 사이트: https://www.acmicpc.net/problem/7568 문제 설명 나의 풀이def solution(s): # 결과 result = [] # 길이 len_s = len(s) for i in range(len_s): # 스코어 score = 1 # 현재 당사자의 몸무게, 키 current_weight, current_height = s[i] for j in range(len_s): d_weight, d_height = s[j] # 자신이 아닌 다른 후보가 나와야함 ..
백준 / 트리 / 1068번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 트리 / 1068번 (골드 5단계)문제 사이트: https://www.acmicpc.net/problem/1068 문제 설명 나의 풀이def make_graph(nodes, len_n, delete): # 노드를 이용해서 그래프로 변환한다. graph = [[] for _ in range(len_n)] # 방문한 곳은 다시 방문하지 않도록 처리 visit = [False] * len_n # 삭제될 노드는 방문하지 않는다. visit[delete] = True # 시작 노드를 결정 root = -1 # answer 전역 변수 global answer for i in range(len_n): ..
백준 / 구슬 탈출 2 / 13460번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 구슬 탈출 2 / 13460번 (골 1단계)문제 사이트: https://www.acmicpc.net/problem/13460 문제 설명 나의 풀이코드가 조금 길어서 핵심 코드를 부분적으로 설명하겠습니다.# BFS 초기화 (큐에 (red_x, red_y, blue_x, blue_y, 이동 횟수)) queue = deque([(red_x, red_y, blue_x, blue_y, 0)]) visited = set() visited.add((red_x, red_y, blue_x, blue_y))파란 공과 빨간 공을 동시에 움직여서 goal지점에 누가 먼저 도착하는지 확인을 하려고 했습니다.# 공이 벽이나 구멍에 닿을 때까지 이동시키는 함수def mo..
백준 / 토너먼트 / 1057번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 토너먼트 / 1057번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/1057 문제 설명 나의 풀이def main(): # 입력 n, kim, lim = map(int, input().split()) # 라운드 초기화 round = 0 # 두 번호가 같아질 때까지 반복 while kim != lim: kim = (kim + 1) // 2 lim = (lim + 1) // 2 round += 1 print(round)main()※ 알아야 할 것구현 문제 입니다!
백준 / 한수 / 1065번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 한수 / 1065번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/1065 문제 설명 나의 풀이def hansu(i): han = list(str(i)) if len(han) == 1: return True elif len(han) == 2: return True else: one = int(han[0]) - int(han[1]) two = int(han[1]) - int(han[2]) # 등차수열 일 경우 True if one == two: return True else: ..
김치바보
'코테' 태그의 글 목록