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라는 함수를 재정의 함으로써, 정렬 기준을 커스텀할 수 있다.
'코딩테스트' 카테고리의 다른 글
[Softeer] [한양대 HCPC 2023] 개표 (1) | 2024.03.17 |
---|---|
취업과 이직을 위한 코딩테스트 사이트 (2) | 2024.03.11 |
[프로그래머스]피보나치 수 -java (0) | 2024.03.10 |
[프로그래머스]JAVA&PYTHON 문자열 내 p와 y의 개수 (0) | 2024.03.03 |
프로그래머스 SQL 모음 (1) | 2024.02.25 |