2020. 11. 19. 00:58ㆍ코딩테스트 준비/python
기본 입출력
- 모든 프로그램은 적절한 입출력 양식을 가지고 있습니다.
- 프로그램 동작의 첫 번째 단계는 데이터를 입력 받거나 생성하는 것입니다.
자주 사용하는 표준 입력 방법
- input() 함수는 한 줄의 문자열을 입력 받는 함수입니다.
- Map() 함수는 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용합니다.
# 데이터의 개수 입력
n = int(input())
# 각 데이터를 공백을 기준으로 구분하여 입력
data = list(map(int, input().split()))
print(n)
print(data)
빠르게 입력 받기
- 사용자로부터 입력을 최대한 빠르게 받아야 하는 경우가 있습니다.
- 파이썬의 경우 sys 라이브러리에 정의되어 있는 sys.stdin.readline() 메서드를 이용합니다.
- 단, 입력 후 엔터(Enter)가 줄 바꿈 기호로 입력되므로 rstrip() 메서드를 함께 사용합니다.
import sys
# 문자열 입력 받기
data = sys.stdin.readline().rstrip()
print(data)
자주 사용되는 표준 출력 방법
- 파이썬에서 기본 출력 print() 함수를 이용합니다.
- 각 변수를 콤마(,)를 이용하여 띄어쓰기로 구분하여 출력할 수 있습니다.
- print()는 기본적으로 출력 이후에 줄 바꿈을 수행합니다.
- 줄 바꿈을 원치 않는 경우 'end' 속성을 이용할 수 있습니다.
출력을 위한 전형적인 소스코드
# 출력할 변수들
a = 1
b = 2
print(a, b) # 12
print(7, end=" ")
print(8, end=" ")
# 출력할 변수
answer = 7
print(" 정답은 " + str(answer) + "입니다.") # 7 8 정답은 7입니다.
<조건문과 반복문>
조건문
- 조건문은 프로그램을 작성할 때 프로그램의 흐름을 제어하는 문법입니다.
- 조건문을 이용해 조건에 따라서 프로그램의 로직을 설정할 수 있습니다.
x = 15
if x >= 10:
print(x) # 15
- 조건문의 기본적인 형태는 if ~ elif ~ else 입니다.
- 조건문을 사용할 때 elif 혹은 else 부분은 경우에 따라서 사용하지 않아도 됩니다.
성적 구간에 따른 학점 출력 예시
score = 85
if score >= 90:
print("학점: A")
elif score >= 80:
print("학점: B")
elif score >= 70:
print("학점: C")
else:
print("학점: F")
# 학점 B
비교 연산자
- 비교 연산자는 특정한 두 값을 비교할 때 이용할 수 있습니다.
논리 연산자
- 논리 연산자는 논리 값 사이의 연산을 수행할 때 사용합니다.
파이썬의 기타 연산자
- 여러 개의 데이터를 담는 자료형을 위해 in 연산자와 not in 연산자가 제공됩니다.
- 리스트 , 튜플, 문자열, 딕셔너리 모두에서 사용이 가능합니다.
파이썬의 pass 키워드
- 조건문의 값이 참(True)이라고 해도, 아무것도 처리하고 싶지 않을 때 pass 키워드를 사용합니다.
반복문
- 특정한 소스코드를 반복적으로 실행하고자 할 때 사용하는 문법입니다.
- 무한 루프(Infinite Loop): 계속해서 반복되는 반복 구문
1부터 9까지 각 정수의 합 구하기
i = 1
result = 0
# i가 9보다 작거나 같을 때 아래 코드를 반복적으로 실행
while i <= 9:
result += i
i += 1
print(result) # 45
1부터 9까지 홀수의 합 구하기
i = 1
result = 0
# i가 9보다 작거나 같을 때 아래 코드를 반복적으로 실행
while i <= 9:
if i % 2 == 1:
result += i
i += 1
print(result) # 25
반복문: for문
- 반복문으로 for문을 이용할 수도 있습니다.
- for문의 구조는 다음과 같은데, 특정한 변수를 이용하여 'in' 뒤에 오는 자료형(리스트, 튜플 등)에 포함
되어 있는 원소를 첫 번째 인덱스부터 차례대로 하나씩 방문합니다.
for 변수 in 리스트:
실행할 소스코드
- for문에서 수를 차례대로 나열할 때는 range()를 주로 사용합니다.
- 이때 range(시작 값, 끝 값) 형태로 사용합니다.
- 인자를 하나만 넣으면 자동으로 시작 값은 0이 됩니다.
result = 0
# i는 1부터 9까지의 모든 값을 순회
for i in range(1, 10):
result += i
print(result) # 45
학생들의 합격 여부 판단 예시 1) 점수가 80점만 넘으면 합격
scores = [90, 85, 77, 65, 97]
for i in range(5):
if scores[i] >= 80:
print(i + 1, "번 학생은 합격입니다.")
'''
1 번 학생은 합격입니다.
2 번 학생은 합격입니다.
5 번 학생은 합격입니다.
'''
학생들의 합격 여부 판단 예시 2) 특정 번호의 학생은 제외하기
scores = [90, 85, 77, 65, 97]
cheating_student_list = {2, 4}
for i in range(5):
if i + 1 in cheating_student_list:
continue
if scores[i] >= 80:
print(i + 1, "번 학생은 합격입니다.")
'''
1 번 학생은 합격입니다.
5 번 학생은 합격입니다.
'''
중첩된 반복문: 구구단 예시
for i in range(2, 10):
for j in range(1, 10):
print(i, "X", j, "=", i * j)
print()