-
[Python] 파이썬 문제 해결 전략 (5)내일배움캠프/Python 2024. 7. 18. 21:26
# 공백 없애주기
a = ‘ 1 2 34 ‘
a.split() => ['1', '2', '34']
여러 개의 구분자로 문자열을 나눌 때
구분자를 공백으로 바꿔주고
공백을 split으로 없애주는 방법이 많이 쓰임
# 정렬
solution=lambda a,n:sorted(a,key=lambda x:(abs(x-n),x))[0]
하나의 기준으로 정렬할 때 같은 값이 나온 경우, 추가적인 기준을 주는 법
# 딕셔너리 get 함수
C = years.get(‘c’, ‘nothing’)
만약 딕셔너리에 c가 있다면 c의 값을 가져오고 없다면 c에 nothing을 저장해라
# 이진트리
쿼리(n) 종류가 많아지면 2분할 방식으로 2이하, 3이상 으로 만들어주면(2진트리) n:1~4까지 어떤 경우든 조건문 2번 안에 자리를 찾아 들어가게 됩니다!
# 이진수
A = ‘1010’ 일 때 int(A, 2)를 하면 십진수로 표현
bin(10)은 10을 이진수로 바꿔줌.
이진수임을 표현하기 위해 앞 두 자리가 0b임
# 슬라이싱
슬라이싱은 배열의 길이를 초과해도 오류가 나지 않음
# 약수 구하기
기사단원의 무기
문제를 풀면서 처음으로 시간 초과를 맞아봤다…
시간 복잡도를 이해하고, 약수 구하기 알고리즘을 공부할 필요성을 느꼈다.
# 대소문자 바꾸기
print(input().swapcase())
너무 쉬워지네
# 등수 구하기
def solution(score):
a = sorted([sum(i) for i in score], reverse = True)
return [a.index(sum(i))+1 for i in score]
sorted로 내림차순을 한 뒤
index를 통해서 순위 구하기
# 차근차근 최대값 구하기
num = 0
data = 0
for i in set(array):
if array.count(i) > num:
num = array.count(i)
data = i
elif array.count(i) == num:
data = -1
return data
# 조건의 일부만 만족 모두 만족
if any(cur<num for num in temp):
if all(cur<num for num in temp):
이렇게 하니까 조건을 주기 쉬운 것 같아..
# 소수 판별
에라토스테네스의 체
소수를 구하는 방법으로
2부터 시작해서 소수의 배수들을 모두 소거해나감..
이걸 어떻게 알고리즘으로 작성할까 싶지만..
사용할 수만 있다면 메모리 사용을 줄여줄 수 있지 않을까…
# 아스키 코드로 범위
def solution(my_string):
char_up = {chr(i) : 0 for i in range(ord('A'),ord('Z') + 1)}
char_lo = {chr(i) : 0 for i in range(ord('a'),ord('z') + 1)}
for m in my_string :
if m.isupper() :
char_up[m] += 1
else :
char_lo[m] += 1
return list(char_up.values()) + list(char_lo.values())
# 대입표현식(바다코끼리 연산자)
[y := f(x), y**2, y**3]
이런 식으로 바로 변수를 정의를 내릴 수가 있음
'내일배움캠프 > Python' 카테고리의 다른 글
[Pandas] 집계함수 살펴보기 (2) 2024.07.22 [Python] for문에서 리스트를 사용할 때 주의해야하는 것 (0) 2024.07.19 [Python] 정규표현식 (기초편) (0) 2024.07.15 [Python] 파이썬 문제 해결 전략 (4) (0) 2024.07.12 [Python] 파이썬 문제 해결 전략 (3) (0) 2024.07.11