코딩테스트
코딩테스트에 유용한 python 함수
hammii
2024. 2. 26. 11:11
Python은 코딩테스트에 유리한 내장함수들을 지니고 있다.
사내 코딩테스트를 준비하면서 기본 문법 외에 추가로 공부했던 python 함수들을 공유해보려고 한다.
최대공약수(GCD)와 최소공배수(LCM)
import math
gcd = math.gcd(숫자1, 숫자2)
lcm = 숫자1 * 숫자2 // gcd
str 거꾸로 출력하기
word = 'hello'
word[::-1] # olleh
divmod - 몫과 나머지 구하기
숫자1을 숫자2로 나눴을 때 (몫, 나머지)
divmod(숫자1, 숫자2)
divmod(4,2) # (2, 0)
divmod(8,3) # (2, 2)
문자열 치환
문자열.replace(원래단어, 바꿀단어)
word = 'hello'
word.replace('ello', 'i') # hi
최대, 최소
score = [1,2,3]
min(score) # 1
max(score) # 3
b = 'BlockMask'
min(b) # 'B'
max(b) # 's'
소수 찾기
def isPrime(n):
if n == 1: return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
아스키코드 변환
ord(문자)
chr(정수)
ord('a') # 97
chr(97) # 'a'
map 을 이용한 형 변환
a = [1.2, 2.5, 3.7, 4.6]
a = list(map(int, a)) # [1, 2, 3, 4]
n진수 변환
bin(숫자) # 2진수
oct(숫자) # 8진수
hex(숫자) # 16진수
bin(10) # 0b1010
bin(10)[2:] # 1010
def convert(n, k):
result = ''
while n >= k:
result += str(n % k)
n = n // k
result += str(n)
return result[::-1]
defaultdict
from collections import defaultdict
int_dict = defaultdict(int) # default 값이 int인 딕셔너리
int_dict['key1'] # 0
정렬 기준 - cmp_to_key
from functools import cmp_to_key
def compare(a, b):
if a > b:
return 1 # 자리를 바꾼다.
else:
return -1 # 자리를 바꾸지 않는다.
sorted(리스트, key=cmp_to_key(compare))
compare라는 함수를 재정의 함으로써, 정렬 기준을 커스텀할 수 있다.