본문 바로가기
Base/Python

8. 범위와 반복문 / 수열 / 온라인 저지 여러 줄 입력 받기

by 귀멸 2023. 2. 17.

혼공파 35 ~ 37강

1. 범위와 반복문

# 범위
# 특정한 범위 내부의 정수들을 나열하는 자료형

# (1) range(A)
# 0부터 A까지의 정수를 범위로 나
# A는 포함하지 않음

# (2) range(A, B)
# A부터 B까지의 정수를 범위로 나열
# B는 포함하지 않음

# range(A, B, C)
# A부터 B까지의 정수를 범위로 나열
# B는 포함하지 않음
# C만큼씩 건너뛰면서 범위를 생성

print(list(range(5))) # [0, 1, 2, 3, 4]
print(list(range(10, 15))) # [10, 11, 12, 13, 14]
print(list(range(0, 20, 3))) # [0, 3, 6, 9, 12, 15, 18]

for i in range(10):
  print(f"{i}번째입니다!")

# 매개변수를 1개 넣는 경우 : 특정 횟수만큼 반복하는 경우
for i in range(10):
  print("반복입니다")

for _ in range(10):  # _ 를 사용하는 경우가 종종 있음
  print("반복입니다")


# 매개변수를 2개 넣는 경우 : 반복 변수를 사용하는 경우
for i in range(0, 10):
  print(f"{i} 번째입니다!")

# 매개변수를 3개 넣는 경우 : 반대로 반복하는 경우
for i in range(10, -1, -1):
  print(f"{i} 번째입니다")

2. 등차수열, 점화식, 피보나치 수열

# 등차 수열
n = 100
a_n = 2 * n - 1
print(a_n)

a = [None] # 수학의 인덱스와 프로그래밍 인덱스를 맞춰주기 위해 None
for n in range(1, 100 + 1): # 100번째까지 출력하는 것을 강조 
  a_n = 2 * n - 1
  a.append(a_n)
print(a)

# a_1 = 1
# a_2 = 3
# a[0] = 1
# a[1] = 3

# 점화식 : 이전 항을 기반으로 다음 항을 만드는 방법
# 프로그래밍에서는 동적계획법이라고 한다.
# a_n = a_n-1 + 2
# a1 = 1

for n in range(1, 10 + 1):
  if n == 1:
    a_n = 1
  else:
    a_n = a[n-1] + 2
  a.append(a_n)
print(a)

# 특정 길이의 리스트 만들기
# 처음에 특정 길이의 리스트를 만드는 것이 append로 계속 리스트 길이가 늘어나는 것보다 빠르다
# [None] * 100

N = 100
a = [None] * (N + 1)
for n in range (1, N + 1):
  if n == 1:
    a[1] = 1
  else:
    a[n] = a[n-1] + 2
print(a)

# 피보나치 수열
N = 100
a = [None] * (N + 1)
for n in range (1, N + 1):
  if n == 1 or n == 2:
    a[n] = 1
  else:
    a[n] = a[n-1] + a[n-2]
print(a)

3. 온라인저지 여러 줄 입력

# 여러줄 입력 받기

N = 10
for n in range(N):
  input()

# 백준 문제 10950
T = int(input())

for n in range(T):
  a = input().split()
  a_0 = int(a[0])
  a_1 = int(a[1])
  print(a_0 + a_1)

 

댓글