일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 파이썬
- 개발자부트캠프추천
- 개발자 취업
- 99클럽
- jwttoken
- 인프콘 2024
- 전략패턴 #StrategyPattern #디자인패턴
- 디자인패턴
- 프로그래머스
- JavaScript
- jwt
- 1주일회고
- 빈 충돌
- 커스텀 헤더
- 프로그래머스 이중우선순위큐
- TiL
- 단기개발자코스
- 구글 OAuth login
- 코딩테스트 준비
- Spring multimodule
- @FeignClient
- infcon 2024
- 디자인 패턴
- 취업리부트코스
- Python
- KPT회고
- DesignPattern
- 빈 조회 2개 이상
- spring batch 5.0
- 항해99
- Today
- Total
목록알고리즘 with python/알고리즘 스터디 (46)
m1ndy5's coding blog
https://school.programmers.co.kr/learn/courses/30/lessons/67257 문제를 풀다가 풀릴듯 잘 안풀려서 다른 사람들은 어떻게 풀었나 하고 찾아봤는데 진짜 너무 깔끔한 코드가 있어서 공부할겸 포스트를 작성해야겠다. from re import split from itertools import permutations def solution(expression): values = [] # permutations으로 가능한 조합을 모두 계산해본다. for priority in permutations(['*', '+', '-'], 3): # 연산자를 기준으로 숫자 리스트를 만든다. operands = list(map(int, s..
최대공약수 : a와 b가 있을 때 (a>b) a와 b의 최대공약수는 b와 a%b의 최대공약수와 같다. 따라서 a와 b에 계속해서 b와 a%b를 대입하고 a%b가 결국 0이 되면 그 때의 a가 최대공약수가 된다. A, B = a, b while B > 0: A, B = B, A%B 최대공약수 = A최소공배수 : a*b를 a와 b의 최대 공약수로 나눈 것 A, B = a, b while B > 0: A, B = B, A%B 최대공약수 = A 최대공배수 = a*b//A
heap을 사용해서 푸는 문제였다. import heapq def solution(operations): answer = [] heap = [] for o in operations: op, num = o.split() if op == 'I': heapq.heappush(heap, int(num)) elif op == 'D' and num == '1': if len(heap) == 0: continue heap.remove(max(heap)) elif op == 'D' and num == '-1': if len(heap) == 0: continue heapq.heappop(heap) if len(heap) == 0: answer = [..
nPr = n! / (n-r)! ex) 9P3 = 9*8*7 nCr = n! / r! (n-r)! ex) 9C3 = 9*8*7 / 3*2*1
python에는 순열과 조합을 구해주는 permutation과 combination 함수가 itertools에 있었다. 이렇게 간편하다닛?! 하하 import itertools arr = ['A', 'B', 'C'] nPr = itertools.permutations(arr, 2) print(list(nPr)) 결과 : [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]import itertools arr = [&#..
# 1에서 n까지의 숫자리스트 만들기 arr = list(range(1, n+1)) # arr 리스트의 요소들 합구하기 sum(arr)for i in range(m, n+1): if i == 1: continue for j in range(2, int(i \*\* 0.5) + 1): if i\*j == 0: break else: print(i)if-else 문 사이에 코드를 짜고 특정 조건에 break를 하면 밑에 else가 실행이 안되서 코드 낭비를 줄일 수 있다!