- 본 포스팅은 알고리즘 문제를 풀면서 배우게 된 Tip을 정리한 포스팅입니다.
- 일종의 오답노트이며, 최근순으로 정리됩니다.
9. 함수의 매개변수 타입을 지정하는 방법
- 만약 어떤 함수를 작성할 때, 매개변수를 지정하고 싶다면 어떻게 할까?
- 아래의 예시 코드를 우선 살펴보자.
from typing import List
def bubble_sort(List[int]) -> List[int]:
#함수내용작성
- 위의 코드는 다음과 같은 방식으로 구조를 갖는다.
def 함수명(매개변수명: 자료형) -> 반환자료형:
#함수내용작성부
- 매개변수 다음 콜론을 적는다.
- 콜론 다음에 매개변수의 자료형을 적는다.
- 화살표 기호 다음에 작성되는 자료형은 해당 매개변수를 return 할 때 적용할 자료형을 기입한다.
- 중요한 것은 매개변수의 자료형을 지정할 때,
- 자료형에 따라서 외부 라이브러리를 import해야 할 수도 있다는 것이다.
- 그러므로 미리미리 연습해서 어떤 자료형은 어떤 라이브러리를 가져와야 하는지 알아보자.
8. sys.stdin.readline()을 input()처럼 사용하는 방법
from sys import stdin
input = stdin.readline
n = int(input())
result = list(map(int, input().split()))
- 위의 코드에서 핵심은 input = stdin.readline에서 괄호()를 붙이지 않는 것이다.
- 자바스크립트에서 배웠던 개념인것 같은데, 괄호를 붙이면 당장 메소드를 호출하겠다는 의미이다.
- 메소드에 괄호를 붙이지 않는다면, 메소드 자체를 참조한다는 의미다.
- 여기서는 input이라는 이름에 stdin.readline 이라는 메소드를 참조하는 것이다.
- 그러므로 괄호를 붙이지 않는다.
- sys.stdin.readline()을 사용하는 이유는 input()보다 빠르기 때문이다.
- 특히나 loop를 통해서 연속적으로 입력을 받는 경우, 더욱 빠르다.
[참고자료]
https://ichi.pro/ko/gwalhowa-gwanlyeondoen-5-gaji-paisseon-gaenyeom-125553555076917
https://velog.io/@banana/Python-%ED%95%A8%EC%88%98
https://codesample-factory.tistory.com/1438
7. 숫자를 담는 리스트의 요소를 나열하는 방법
a = [1, 2, 3]
result = "".join(map(str, a))
print(result) # 123 출력
result = "+".join(map(str,a))
print(result) # 1+2+3 출력
- join()을 사용하기 위해서는 문자를 담고있는 리스트 또는 iterable을 매개변수로 넣어야 한다.
- 동일하게 구분자를 사용할 수 있다.
6. 문자를 담은 리스트의 요소를 나열하는 방법
a = ['a', 'b', 'c']
result = "".join(a)
print(result) # abc 출력
result = "+".join(a)
print(result) # a+b+c 출력
- join앞에 "" 사이에는 구분자를 넣을 수 있다.
- 위의 코드에서 ""은 아무런 공백도 없음을 의미한다.
5. 백준 2908 - 상수
a) slice
- slice 기능을 이용한 문자열 역순 정렬
string = 'Hello, World!'
reversed_str = string[::-1]
print(reversed_str) # !dlroW ,olleH 를 출력한다.
b) 문자열을 역순으로 정렬하는 다양한 방법
https://codechacha.com/ko/python-reverse-string/
c) slice의 다양한 기능
https://dojang.io/mod/page/view.php?id=2208
4. 백준 1152 - 단어의 개수
a) strip()
- 문자열의 공백을 제거하는 메소드
- strip에는 3가지 종류가 있다.
str = " Hello, World! "
# 1) lstrip() ==> 왼쪽부터 공백 제거
print(str.lstrip()) # "Hello, World! " 오른쪽 공백이 그대로 출력
# 2) rstrip() ==> 오른쪽부터 공백 제거
print(str.rstrip()) # " Hello, World!" 왼쪽 공백이 그대로 출력
# 3) strip() ==> 양쪽에서 공백 제거
print(str.strip()) # "Hello, World!" 양쪽 공백 모두 제거
[참고자료]
https://codechacha.com/ko/python-string-strip/
3. 백준 1157 - 단어공부
a) set 자료형 이해하기 - 참고자료
2. 백준 10809 - 알파벳 찾기
a) string.find(param)
- 문자열에서 어떤 문자의 index를 반환하는 메소드
# 1) 특정 문자의 index값 찾기
str = "ABCDE"
index_n = str.find("A") # 0이 반환된다.
# 2) 검색시작 위치를 지정해서 찾기
str1 = "ABCABCABC"
index_n = str1.find("A", 2) # index 2번인 C부터 검색을 시작한다. 3을 반환한다.
- find는 첫번째로 검색되는 문자의 index를 반환한다.
1. 백준 11654 - 아스키코드
a) ord(param)
- 문자를 아스키코드로 바꾸는 메소드
print(ord("A")) #65를 반환한다.
b) chr(param)
- 아스키코드를 문자로 바꾸는 메소드
print(chr(65)) # 대문자 A를 반환한다.
[참고자료]
https://lsjsj92.tistory.com/201
'Algorithm > 알고리즘 공부노트' 카테고리의 다른 글
4. Array(배열) - Selection Sort(선택정렬) (0) | 2021.08.24 |
---|---|
3. Array(배열) - Insertion Sort(삽입정렬) (0) | 2021.08.24 |
2. Array(배열) - Bubble Sort(버블정렬) (0) | 2021.08.21 |
1. Array(배열) - 기본 개념 (0) | 2021.08.20 |
파이썬 - filter와 lambda, map 사용방법 (0) | 2021.08.06 |
댓글