반응형
문제 1
목표 : 주어진 문자열 리스트 strs 에서 가장 짧은 문자열을 선택하고, 이를 기준으로 공통된 접두사를 찾는다.
##1
def solution(strs):
if not strs:
return ""
# 가장 짧은 문자열을 찾기. 공통 접두사의 길이는 이 가장 짧은 문자열의 길이
shortest_str = min(strs, key=len)
# 가장 짧은 문자열의 각 문자를 반복하면서 다른 문자열들과 비교
for i, char in enumerate(shortest_str):
for other in strs:
# 만약 일치하지 않는 문자가 나타나면, 현재까지 일치했던 부분만 반환
if other[i] != char:
return shortest_str[:i]
# 모든 문자열이 가장 짧은 문자열을 접두사로 갖고 있으면, 이를 반환
return shortest_str
문제 2
주어진 배열 arr 에서 두개의 숫자를 선택해서 그 합이 n 이 되는 경우가 있는지 확인한다.
##2
def solution(arr, n):
num_set = set(arr)
# 배열의 각 숫자에 대해 반복
for number in arr:
# n에다가 현재의 값을 빼면 나머지 값
complement = n - number
# 그 나머지 값이 리스트에 있는지 확인
if complement in num_set and complement != number:
return True
return False
문제 3
이진 문자열 s 에서 0 과 1이 교차하는 경우를 제거하고 남은 문자열의 길이를 반환 한다.
##3
def solution(s):
# 빈 스택 활용
stack = []
# 이중 문자열 s 의 각 문자 char 에 대해 반복문
for char in s:
# 01, 10 패턴 팝
# 현재 문자 char 가 스택의 맨 위의 요소와 반대되는 경우 01,10 교차로 나타날때 스택 맨위의 요소 pop
if stack and ((char == '0' and stack[-1] == '1') or (char == '1' and stack[-1] == '0')):
stack.pop()
else:
# 그렇지 않은 경우 현재 문자 char를 스택에 추가 append
stack.append(char)
# 끝나면 스택의 길이 반환
return len(stack)
반응형
'Python' 카테고리의 다른 글
python VCF file 정보 추출 (chromosome) 하고 plot 만들기 (0) | 2024.04.16 |
---|---|
python VCF file 데이터 불러오기 (0) | 2024.04.16 |
VCF 파일 pandas dataframe 으로 전환하기 (0) | 2024.03.15 |
python 판다스(pandas) DataFrame 기초통계 확인하기 (24) | 2023.11.18 |
python 판다스(pandas) DataFrame categorical 범주형 데이터 작업 (10) | 2023.11.18 |