본문 바로가기

코딩테스트 with Python

문자열 함수 및 정규표현식 lstrip(): 문자열의 맨 왼쪽에 입력받은 문자가 있으면 벗겨낸 문자열을 리턴 rstrip(): 문자열의 맨 오른쪽에 입력받은 문자가 있으면 벗겨낸 문자열을 리턴 split(): 문자열을 리스트로 치환 default는 공백기준 or 입력받은 문자열기준 메타 문자 :정규식에서 사용시 특수한 의미를 가짐 . ^ $ * + ? { } [ ] \ | ( ) 문자 클래스 [ ] : 하이픈(-)을 사용하면 두 문자 사이의 범위를 의미한다. [a-d] == [abcd] [abc] : a 또는 b 또는 c가 한개라도 포함된 문자열 [a-zA-Z]: 알파벳 모두 [0-9]: 숫자 자주 사용하는 문자 클래스 : 약어들이 있음의 주의하자. \d - 숫자와 매치, [0-9]와 동일한 표현식이다. \D - 숫자가 아닌 것과.. 더보기
다중 집합 집합은 기본적으로 중복을 허용하지 않는다. 따라서 다중집합에 관한 문제는 리스트를 사용한다. a = [1, 1, 2, 3, 4, 6] b = [1, 2, 3, 3, 4, 5] 다중 집합 사이의 연산은? 다중 합집합의 경우 연산 전에 집합을 복사해서 이용하기로 하자. a = [1, 1, 2, 3, 4, 6] b = [1, 2, 3, 3, 4, 5] # 다중 합집합 temp = lst1.copy() union = lst1.copy() for i in lst2: if i not in temp: union.append(i) else: temp.remove(i) # 다중 교집합 intersection = [] for i in lst2: if i in lst1: lst1.remove(i) intersection.a.. 더보기
[파이썬] 빈 리스트 확인 하는법 리스트가 비어있는 지 확인하려면 not list -> 가 True면 빈 리스트 이다. lst = [] not lst # True lst = [1] not lst # False 더보기
[파이썬] itertools ,순열, 조합 등 순열, 조합 등 경우의 수를 구할 때 쓰는 파이썬 라이브러리 itertools 수학적 지식은 따로 안다고 가정하고 바로 라이브러리를 사용해보자. 경우의 수 전체를 파악하려면 해당 함수사용후 리스트로 변환해주는것이 편하다. 순열 itertools.permutations(iterable, n) import itertools # n=4, r=2 -> 12 = 4*3 x = list(itertools.permutations([1,2,3,4],2)) # [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)] 중복순열 itertools.product(iterable, repeat=n) 조합 iter.. 더보기
[파이썬] Counter 객체 Counter는 dict의 서브클래스이다. 요소의 개수를 세어준다. key(요소)와 value(개수) 형태로 저장된다. 객체 간 연산이 가능하다. 예시) import collections s1 = collections.Counter(['a','a','b','c','d']) s2 = collections.Counter('aabcd') # s1 = Counter({'a': 2, 'b': 1, 'c': 1, 'd': 1}) # s2 = Counter({'a': 2, 'b': 1, 'c': 1, 'd': 1}) s3 = collections.Counter({'a': 2, 'b': 1, 'c': 1, 'd': 1}) # dict객체를 넣으면 그대로 s4 = collections.Counter(a=2,b=1,c=1.. 더보기
[파이썬] 문자열 method replace() replace() 문자열 method replace(old, new, [count]) 주어진 문자열에서 old -> new 로 대치된 문자열을 return 한다. 원래 문자열을 그대로 바뀌지 않는다.(string은 수정불가능) count: 변경할 횟수, default는 -1로 전체를 의미한다. 예시) a = 'hello world' a.replace('hello','hi') # hi word *만약 old에 해당하는 문자열이 없으면 원래 문자열을 return 문제) 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 .. 더보기
[파이썬] 내장 함수 zip zip() 한 번에 두개 이상의 인자에 접근하면서 for 문을 돌고 싶을 때 사용 문제1) 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) a = [1, 2, 3, 4] b = [-3, -1, 0, 2] result -> 3 내가 짠 코드 def solution(a, b): answer = 0 for i in range(len(a)): answer += a[i]*b[i] return answer zip 함수 활용 def solution(a, b): answer = 0 for .. 더보기