본문 바로가기
728x90

백준알고리즘27

[백준] 11050 이항 계수 python 알고리즘 문제 문제 11050. 이항 계수 1 1. 나의 코드와 발상 과정 def fac(n): if n == 0: return 1 return n * fac(n-1) n, k = map(int, input().split()) print(fac(n)//(fac(k)*fac(n-k))) def를 처음 알고리즘 공부에 사용하기 시작하였다. 이항계수가 뭔지 몰라 구글 선생님께 물어보다가 이항계수는 팩토리얼 개념이 들어가 있다는 것을 알았다. 아하... 조합... 계속해서 곱하는 것을 다음과 같이 할 수 있다는 정보를 얻을 수 있었다. (1) 반복문 (2) 재귀함수 구현 이제 함수도 구현해야 하니까.. 직접 네 줄의 코드를 짜보았다. 어제 재귀함수 강의 살짝 듣고 복습했는데 구상을 하려고 하니 머리가 아팠지만 금방 떠올려서 .. 2022. 4. 20.
[백준] 2869 달팽이는 올라가고 싶다 python 알고리즘 문제 문제 2869. 달팽이는 올라가고 싶다. 1. 나의 코드와 발상 과정 ### 시간초과 a, b, v = map(int, input().split()) day = v // (a - b) + 1 len_sum = 0 for i in range(1, day): len_sum += a if len_sum >= v: print(i) break else : len_sum -= b ##### a, b, v = map(int, input().split()) day = (v - b) // (a - b) if (v - b) % (a - b) == 0: print(day) else: print(day + 1) 0.15초라는 시간제한이 있기 때문에 최소한의 반복을 해야 한다. 반복문을 쓰지 않고 풀어보았다. (위에껀 써봤더니.. 2022. 4. 20.
[백준] 2798 블랙잭 python 알고리즘 문제 문제 2798. 블랙잭 1. 나의 코드와 발상 과정 n, m = map(int, input().split()) card_num = list(map(int, input().split())) card_num.sort(reverse = True) card_sum = [] for i in range(n): for j in range(n): for k in range(n): if i == j or i == k or j == k: continue card_sum.append(card_num[i]+card_num[j]+card_num[k]) card_sum.sort(reverse = True) for i in range(len(card_sum)): if int(card_sum[i]) > m: continue else.. 2022. 4. 20.
[백준] 2231 분해합 python 알고리즘 문제 문제 2231. 분해합 1. 나의 코드와 발상 과정 n = int(input()) n_list = list(range(1,1000001)) for i in range(len(n_list)): m = 0 struc = list(map(int, str(n_list[i]))) m = n_list[i] + sum(struc) if m == n: print(n_list[i]) break if m != n: print(0) 처음에 이해를 잘 하지 못했는데 예제를 잘 들여다보면 금방 파악할 수 있다. 216을 입력 받으면 216을 '만들수 있는' 생성자 216 = '198'+1+9+8 을 찾아내라는 문제이다. 그럼 저건 어떻게 알 수 있을까 고민을 해보았는데, 배열을 두 개 만들면 되지 않나 하는 생각을 했다. N이.. 2022. 4. 20.
[백준] 10250 ACM 호텔 python 알고리즘 문제 문제 10250. ACM 호텔 1. 나의 코드와 발상 과정 (오답) ## 오답 1. t = int(input()) ans_list = [] for i in range(t): h, w, n = map(int,input().split()) if n // h + 1 = 10: answer = str(h) + .. 2022. 4. 20.
[백준] 2839 설탕 배달 python 알고리즘 문제 문제 2839. 설탕 배달 1. 나의 코드와 발상 과정 n = int(input()) new_n1, new_n2 = n, n cnt1, cnt2 = 0, 0 cnt1 += new_n1 // 5 new_n1 = new_n1 - cnt1 * 5 cnt1 += new_n1 // 3 if new_n1 % 3 != 0 : vari1 = -1 else : vari1 = cnt1 cnt2 += new_n2 // 3 new_n2 = new_n2 - cnt2 * 3 cnt2 += new_n2 // 5 if new_n2 % 5 != 0 : vari2 = -1 else : vari2 = cnt2 if vari1 == -1 : if vari2 > 0 : print(vari2) else : print(-1) elif vari2.. 2022. 4. 18.
728x90