[Python] 코딩테스트에서 자주 쓰는 문법
입력 받기
input() // sys.stdin.readline()
- 입력 값 정수 한개
input()
- 공백을 기준으로 정수 여러개
num_list = list(map(int, input.split('')))
→ input.split('')은 공백을 기준으로 분리하고 리스트를 만듦.
→ input.split()은 \n을 포함해서 분리하고 리스트를 만듦
→ map(int,input.split('')) 은 만들어진 리스트를 순회하면서 각 원소에 대한 자료형을 int로 변환해줌. input()은 모두 str이기 때문에.
→ map의 겉 부분에 list() 한 이유는 map 함수는 literable을 반환하기 때문에 list를 사용하기 위해 감싸준 것.
sys.stdin.readline()
import sys
a = list(map(int, sys.stdin.readline().split()))
# a = [1, 2, 3, 4, 5]
- 여러 라인 입력받아야 할 경우
import sys
n = input()
a = [sys.stdin.readline() for i in range(n)]
# a = ["1 2 3", "4 5 6"]
Slicing
#문자열 원본
str='My name is Lee'
#문자열 뒤집기
str[::-1]
#홀수번째 문자열만
str[0::2]
#짝수번째 문자열만
str[1::2]
문자 검사
str = 'I am 26 years old'
#해당 문자열이 알파벳으로만 이루어져 있는지
str.isalpha() #f
#해당 문자열이 알파벳과 숫자로 이루어져 있는지
str.isalnum() #t
#해당 문자열이 모두 소문자인지 검사
str.islower() #f
'asd134$^$'.islower() #t --> 숫자나 특수문자는 무시
#해당 문자열이 모두 대문자인지 검사
str.isupper() #f
숫자 검사
#문자열이 숫자인지 확인
'12415'.isdecimal() #t
'123456'.isdigit() #t
'123456'.isnumeric() #t
→ 로마숫자, 한자숫자 등을 사용할때 리턴값이 다 다름
is numeric()이 사용범위가 제일 넓음. 특수문자든, 한자숫자든 로마숫자든 모두 TRUE를 리턴해줌
문자열 양식 변경
#대문자로 변경
'aaa'.upper() #AAA
#소문자로 변경
'AAA'.lower() #aaa
#첫 글자만 대문자로 변경
'abc!!'.capitalize() #Abc!!
포함된 글자 검색 및 검사하기
str='i am 26 years old'
#포함 여부
'm' in str #T
#'m'이 몇번째 인덱스에 위치하는지 찾기
str.index('m') #3
str.find('m') #3
#같은 문자가 2개 이상이면 첫 번째 위치만 반환
#대신 첫 번째 위치에 +1 이후 위치를 검색하면 다음 위치 검색 가능
str.index('a') #2
str.find('a') #2
str.index('a',4) #10
str.find('a',4) #10
#count 함수를 사용해 개수
str.count('a')
find → 없으면 -1 반환
index → 없으면 에러
재귀함수가 있는 경우 최대 재귀 깊이 설정
→ dfs, bfs 문제에서
import sys
sys.setrecursionlimit(10**8) # 10^8 까지 늘림.
Author And Source
이 문제에 관하여([Python] 코딩테스트에서 자주 쓰는 문법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@doodung/Python-코딩테스트에서-자주-쓰는-문법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)