파이썬(34)
-
[백준 1260] DFS와 BFS (실버 3) 문제 풀이- 파이썬 python
0. 자세한 설명은 YouTube 영상으로 개발자로 취직하기의 DFS 강의 : https://inf.run/MqJT [자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편 - 인프런 | 강의 자바(Java)로 코딩테스트를 준비하시는 DFS로 분들이 가장 많다는 소식을 들어 제작된 강의입니다 :) 문과 출신의 현업 개발자가 공부한 방식 그대로 설명하고, 지루한 이론 강의는 다 직접 문제를 www.inflearn.com 1. 풀이 코드 import sys def dfs(idx) : global visited visited[idx] = True print(idx, end = ' ') for next in range(1, N+1) : if not visited[next] and graph[idx][ne..
2022.12.29 -
[백준 10870] 피보나치 수 5 문제 풀이- 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1. 재귀함수만 사용한 풀이 # ver 1 def fib(num): # 2. 탈출 조건 if num < 2: return num # 1. 기본 동작 return fib(num - 1) + fib(num - 2) num = int(input()) print(fib(num)) 2. 재귀함수 + DP 풀이 # ver 2 def fib(num): # 2. 탈출 조건 if dp[num] == -1: # 한번도 연산된 적이 없다면 dp[num] = fib(num - 1) + fib(num - 2) # 1. 기본 동작 return dp[num] num = int(input()) dp = [-1] * 100 dp[0] = 0 dp[1] = 1 print(fib(num)) 3...
2022.12.22 -
[프로그래머스] 콜라 문제 풀이(코딩테스트 입문 Lv. 1) - 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1. 가장 단순한 풀이 def solution(a, b, n): answer = 0 # 1. 빈 병의 개수 n이 교환 가능한 최소 숫자 a 이상일 때까지 반복 while n >= a: # 2. b개의 병 추가 answer += b # 3. 남은 병 계산하기 n = n - a + b return answer 2. 최적화된 풀이 def solution(a, b, n): answer = 0 # 1. 빈 병의 개수 n이 교환 가능한 최소 숫자 a 이상일 때까지 반복 while n >= a: # 2. 현재 빈 병으로 받을 수 있는 새로운 개수 및 나머지 계산 newCount = n // a * b leftover = n % a # 3. 정답 반영 및 빈 병 개수 다시 계..
2022.12.15 -
[프로그래머스] 분수의 덧셈 문제 풀이(코딩테스트 입문 Lv. 0) - 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1. 단순 gcd를 활용한 Solution # ver1 def solution(denum1, num1, denum2, num2): # 1. 두 분수의 합 계산 boonmo = num1 * num2 boonja = denum1 * num2 + denum2 * num1 # 2. 최대공약수 계산 start = max(boonmo, boonja) gcd_value = 1 for num in range(start, 0, -1): if boonmo % num == 0 and boonja % num == 0: gcd_value = num break # 3. gcd 로 나눈 값을 answer에 담기 answer = [boonja / gcd_value, boonmo / gcd_..
2022.12.08 -
[2021 카카오 코딩테스트] 메뉴 리뉴얼 - 파이썬
0. 자세한 설명은 YouTube 영상으로 1-1. Hash를 활용한 Solution from itertools import combinations def solution(orders, course): answer = [] # 1. 각 order 정렬 for i in range(len(orders)): orders[i] = "".join(sorted(orders[i])) print(orders[i]) # 2. course_len 마다 조합 생성 for course_len in course: hash = {} max = 0 for order in orders: # 각 Order를 기준으로 courseLength 만큼의 조합 만들기 for comb in combinations(order, course_len..
2021.12.27 -
[프로그래머스] 체육복 문제 풀이(탐욕법 Greedy Lv.1) - 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1-1. Set을 활용한 Solution def solution(n, lost, reserve): # 1. Set을 만든다 reserve_only = list(set(reserve) - set(lost)) lost_only = list(set(lost) - set(reserve)) reserve_only.sort(); # 2. 여분을 기준으로 앞뒤를 확인하여 체육복을 빌려준다. for reserve in reserve_only: front = reserve - 1 back = reserve + 1 if front in lost_only: lost_only.remove(front) elif back in lost_only: lost_only.remove(back)..
2021.12.15