Notice
Recent Posts
Recent Comments
Link
KS_History
이것저것 공부 기록 본문
title()
- str.title() 형태로 사용하며 단어 단위로 처리함. 공백, 특수문자 뒤 문자를 새로운 단어로 인식함
- 각 단어의 첫 글자 대문자 + 나머지 소문자로 처리함
- 시간 복잡도 O(n), 공간 복잡도 O(n)
capitalize()
- str.capitalize() 형태로 사용하며, 첫 글자만 대문자로 변경하며 나머지는 소문자로 함
- 시간 복잡도와 공간복잡도 모두 O(n) -> 공간의 경우 기존 문자열에 붙이는게 아니라 새 문자열 생성함

오른쪽은 왼쪽 코드를 개선한 것
- chk를 new_word로 사용하며 True/False로 의미를 명확히함
- answer += s[i]는 공간 복잡도 측면에서 새로운 문자열을 만드는 것을 append()를 사용해 공간 복잡도를 줄임


아래 문제에서 if문 너무 많이 씀. 오른쪽과 같이 줄이기도 가능함


ㄴ list가 빈 경우 a[-1:]읜 []이 return 됨
오른쪽이 왼쪽에서 replace 사용안해서 조금도 효과적으로 개선한 코드


유클리드 호제법?
- 두 수의 최대공약수를 구하는 가장 빠르고 고전적인 알고리즘으로
두 정수 a,b(a ≥ b)에 대해 a를 b로 나눈 나머지를 이용해 최대공약수를 구하는 방법으로
나머지가 0이 될 때 그때의 b가 최대 공약수
- 시간 복잡도 O(log(min(a,b)))
- 유클리드 호제법을 응용해 최소 공배수는 lcm(a,b) = a * b / gcd(a,b)
def gcd(a,b):
while b != 0:
a, b = b, a % b
return a
'History > Python Coding' 카테고리의 다른 글
| 문제 리뷰하기 (0) | 2026.01.20 |
|---|---|
| 이것저것 공부기록 (0) | 2026.01.08 |
| 이것저것 공부기록 (0) | 2025.12.11 |
| function과 이것저것 공부 기록 (0) | 2025.12.08 |