전체 글(151)
-
[백준 2449] 전구 문제 풀이- 자바 Java
0. 자세한 설명은 YouTube 영상으로 1. DP 풀이 import java.util.*; class Main { final static int INF = 1
2022.12.24 -
[백준 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. 2) - 자바 Java
0. 자세한 설명은 YouTube 영상으로 1. GCD를 활용한 풀이 class Solution { public boolean notDivisible(int[] arr, int num){ for(int n : arr) if(n % num == 0) return false; return true; } public int gcd(int a, int b){ if(a % b == 0)return b; return gcd(b, a % b); } public int solution(int[] arrayA, int[] arrayB) { // 0. 입력 및 초기화 int answer = 0; int gcdA = arrayA[0]; int gcdB = arrayB[0]; // 1. 각 배열의 최대공약수 구하기 for(i..
2022.12.17 -
[프로그래머스] 콜라 문제 풀이(코딩테스트 입문 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) - 자바 Java
0. 자세한 설명은 YouTube 영상으로 1. 배열을 활용한 Solution class Solution { public int solution(int[][] lines) { // 1. arr 배열 및 변수 초기화 int[] arr = new int[200]; int answer = 0; // 2. lines 정보를 arr 배열에 적용 for(int i = 0; i 1) answer++; return answer; } }
2022.12.10 -
[프로그래머스] 분수의 덧셈 문제 풀이(코딩테스트 입문 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