KS_History

이것저것 공부 기록 본문

History/Python Coding

이것저것 공부 기록

kstar2 2026. 1. 19. 16:39

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