<sorted 우선순위>
'', !, @, A, a
<문자열 관련 메소드>
find()
설명: 문자열에서 특정 부분 문자열이 처음 나타나는 위치를 찾습니다. 찾는 문자열이 없는 경우 -1을 반환합니다.
사용법: text.find(sub[, start[, end]])
index()
설명: find()와 유사하지만, 찾는 문자열이 없을 경우 ValueError를 발생시킵니다.
사용법: text.index(sub[, start[, end]])
count()
설명: 문자열 내에서 특정 부분 문자열이 등장하는 횟수를 반환합니다.
사용법: text.count(sub[, start[, end]])
replace()
설명: 문자열 내의 특정 부분 문자열을 다른 문자열로 대체합니다.
사용법: text.replace(old, new[, count])
count를 지정하면, 대체할 최대 횟수를 제한할 수 있습니다.
split()
설명: 문자열을 특정 구분자로 분리하여 리스트로 반환합니다. 구분자를 지정하지 않으면 공백(스페이스, 탭, 개행)을 기준으로 분리합니다.
사용법: text.split(sep=None, maxsplit=-1)
join()
설명: 문자열 리스트의 요소들을 특정 문자열로 연결합니다. 이 메소드는 문자열 객체의 메소드로, 리스트 등의 반복 가능한(iterable) 객체에 사용됩니다.
사용법: sep.join(iterable)
<재귀함수>
자기자신을 호출하는 함수
왜?
코드를 간결하게
stack을 사용함으로 DFS같은 깊이 우선 탐색에 이용
주의!
호출이 많아지면 스택 메모리에 부담이 될 수 있음
stack overflow 위험. 반드시 탈출 조건을 만들어줘야함.
<재귀 함수를 사용하면서 느낌점>
아래의 간단한 코드를 통해 자기자신을 호출하는 형태를 익히자.
def Square(n, m):
if m == 0:
return 1
return n * Square(n, m-1)
위의 그림을 보고 재귀함수가 스택형식으로 return값을 모으다가 점차 함수를 내보내는 걸 이해해야한다.
보면서 모으고 모으고 한번에 다 리턴떄리는 모습이 뿌요뿌요가 생각났음.
<문제풀이>
회문같은 문자형을 비교할때 문자형을 len()으로 갯수를 세고 절반으로 나누어 아래처럼 비교했었는데 비효율적이고 여러번 시도했지만 에러가 잦고 생각보다 좋은 코드는 아닌 것 같다.
[1:len(a)/2] == [- len(a)/2 :]
그래서 아래와 같이 비교 했는데 훨신 편하고 잘 사용하고 있다.
if text == text[::-1]:
<과제 (개인)>
버블정렬
삽입정렬
선택정렬
병합정렬
퀵정렬
<해야할 일>
1. 버블정렬, 삽입정렬, 선택정렬,병합정렬 함수로 만들어보기. 인풋(숫자로만 된 리스트) 아웃풋(정렬이 된 리스트가 리턴)
2. 파이썬 심화 과정을 다시 한번 보면 더 잘 활용할 것 같다.
3. 1일차 심화문제들 도전하기