기본 입출력
자주 사용되는 표준 입력 방법
- input() : 한줄의 문자열을 입력받는 함수
- map() : 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용한다.
- 예시)
#공백을 기준으로 구분된 데이터의 개수가 많을때
list(map(int,input().split()))
#공백을 기준으로 구분된 데이터의 개수가 적을때
a,b,c = map(int,input().split())
빠르게 입력받기
- sys라이브러리에 정의되어있는 sys.stdin.readline() 메서드 이용하자.
- 엔터가 줄바꿈 기호로 입력되므로, rstrip() 메서드 함께 사용하자.
import sys
# 문자열 입력받기
data = sys.stdin.readline().rstrip()
print(data)
자주 사용되는 표준 출력 방법
- print()함수, 콤마(,)를 이용하여 띄어쓰기로 구분하여 출력가능
- print()함수는 기본적으로 출력 이후에 줄바꿈 수행
- 줄 바꿈을 원치 않는 경우 'end'속성 이용
a = 1
b = 2
print(a,b)
print(7, end=" ")
print(8, end=" ")
#출력할 변수
answer=7
print( " 정답은 " + str(answer)+"입니다.")
f-string 예제
- 파이썬 3.6 부터 사용가능하며, 문자열 앞에 접두사 'f'를 붙여 사용한다.
- 중괄호 안에 변수명을 기입하여 간단히 문자열과 정수를 함께 넣을 수 있다.
answer=7
print(f"정답은 {answer}입니다.")
조건문과 반복문
조건문
- if 키워드를 이용해서 조건문 작성 가능
- 코드의 블록을 들여쓰기(Indent)로 지정함
들여쓰기
- 4개의 공백문자 사용
조건문의 기본적 형태
- if~elif~else
비교 연산자
논리 연산자
다른언어와의 차이점 : &, | 이런걸 쓰지않고 직관적이다.
파이썬의 기타 연산자
in 연산자, not in 연산자
- 리스트, 튜플, 딕셔너리 모두에서 사용가능함.
파이썬의 pass 키워드
- 아무것도 처리하고 싶지 않을때 pass 키워드 사용
- 디버깅 과정에서 사용
((처음 알았다))
조건문의 간소화
- 조건문에서 실행될 소스코드가 한 줄인 경우, 굳이 줄 바꿈을 하지 않고도 간략하게 표현가능
- 조건부 표현식은 if~else문을 한줄에 작성할 수 있게 해줌
파이썬 조건문 내의 부등식
- 와 이거 진짜 편하다
- 0<x<20 으로 한번에 쓸수있다.
- 다른 코드에서는 x >0 & x<20 이런식으로 해야하는걸!
반복문
- while,for문
- for문이 더 간결한 경우가 많음
- 무한루프 : 반복문을 탈출하지 않는코드 ( 코테에서는 그럴일은 거의없음)
for문
in 뒤에오는 데이터(리스트, 튜플) 에 포함되어있는 원소를 첫번째 인덱스부터 차례대로 하나씩 방문
for 변수 in 리스트 :
실행할 소스코드
for문에서 연속적인 값을 차례대로 순회할 때는 range()를 주로 사용한다.
- range(시작값, 끝 값 +1)
- 인자 하나만 넣으면 자동으로 시작값 0 됨
continue 키워드
남은 코드 실행 건너뛰고 다음 반복 진행
break 키워드
반복문 즉시 탈출
함수와 람다 표현식
함수
- 특정한 작업을 하나의 단위로 묶어놓은 것
- 불필요한 소스코드의 반복 줄임
함수의 종류
- 내장 함수 : 파이썬 기본 제공 함수
- 사용자 정의 함수 : 개발자 직접 정의 함수
함수 정의하기
- 매개변수 : 함수 내부 사용변수
- 반환 값 : 함수에서 처리된 결과 반환
파라미터 지정하기
- 파라미터 변수 직접 지정 가능
- 매개변수의 순서가 달라도 상관없음
global 키워드
- global 키워드로 변수를 지정하면 해당 함수에서는 지역 변수를 만들지 않고, 함수 바깥에 선언된 변수를 바로 참조
전역변수로 선언된 리스트 객체는 global 선언 없이도 접근 가능하다. 다만 지역변수로 동일한 이름의 리스트가 함수 내부에 선언될경우 지역변수가 우선이다.
여러개의 반환값
- 파이썬 함수는 여러개의 반환값을 가질 수 있다.
이야 편하네
여러개의 변수를 한꺼번에 반환하는 것을 엄밀히는 packing 이라고 말한다.
반환값을 차례대로 특정 변수에 담는것을 unpacking이라고 한다.
람다 표현식
- 함수를 간단하게 작성할 수 있다.
- 특정한 기능을 수행하는 함수를 한줄에 작성할 수 있다.
def add(a,b):
return a+b
# 일반적인 add()메서드 사용
print(add(3,7))
#람다 표현식으로 구현한 add()메서드
print((lambda a, b:a+b)(3,7))
우와 신기하다
함수 자체를 입력으로 받을때 효과적일 수 있으며, 한번 사용하고 말때 효과적이다.
람다 표현식 예시 : 내장 함수에서 자주 사용되는 람다 함수
실전에서 유용한 표준 라이브러리
- 내장 함수 : 기본 입출력 함수, 정렬함수 기본적 함수 제공
- itertools: 파이썬에서 반복되는 형태의 데이터를 처리하기 위한 유용한 기능제공 (순열과 조합 라이브러리는 코테에서 자주사용됨)
- heapq: 힙 자료구조를 제공 (우선순위 큐 기능 구현)
- bisect : 이진탐색 기능 제공
- collections : 덱, 카운터 등의 유용한 자료구조 포함함
- math: 필수적인 수학적 기능 제공 (팩토리얼, 제곱근, 최대 공약수(GCD), 삼각함수 관련 함수 (pi)와 같은 상수 포함
#sum
더해주는 함수
#min(),max()
최솟값, 최댓값 찾아주는 함수
#eval()
수식을 계산해서 반환
#sorted()
정렬
#sorted() with key
특정 값을 기준으로 정렬
순열과 조합
- 순열 : 서로 다른 n 개에서 서로 다른 r 개를 선택하여 일렬로 나열하는 것
{'A','B','C'}에서 세개를 선택하여 나열하는 경우 : 'ABC','ACB','BAC','BCA','CAB','CBA'
-조합 : 서로 다른 n개에서 순서에 상관없이 서로 다른 r개를 선택하는 것
{'A','B','C'} 에서 순서 고려 안하고 두개 뽑는 경우 'AB','AC','BC'
중복 순열과 중복 조합
라이브러리에 집중
Counter
- collections 라이브러리의 Counter는 등장횟수를 세는 기능을 제공함
- 반복가능한 , 리스트와 같은 객체가 주어졌을대 내부의 원소가 몇번씩 등작했는지 알려줌
최대 공약수와 최소 공배수
math 라이브러리의 gcd()함수 이용
이거 너무 편한거아님? 다른거는 직접구현해야할텐데..(아닌가)
최소 공배수는 최대공배수로 나눈 값
'✍️2023 > Algorithm' 카테고리의 다른 글
구현 (1) | 2023.04.21 |
---|---|
[BOJ/1439] 그리디 문제 (1) | 2023.04.20 |
[이코테] 그리디 (2) | 2023.04.18 |
python 코테준비 - 문법 공부 (2) | 2023.04.13 |
python 코테 준비 - 개괄 (1) | 2023.04.13 |