for문은 보통 명시적으로 몇번 실행해야 하는지 정해진 상태에서 많이 사용
while문은 몇번 실행해야 하는지 모르는 상태에서 많이 사용
변수 i를 출력시 사용할 것이냐에 따라 range() 설정시 주의하자
range(t)는 0 ~ t-1까지 t번 반복하는데
print(f'{i}번째: {a + b}')와 같이 1번째, 2번째..를 출력하려면 range설정시 1부터 들어가도록 하는 것이 좋을 것이다
n = int(input())
for i in range(1, 10):
print(n, '*', i, '=', n*i)
n = int(input())
for _ in range(n):
a, b = map(int, input().split())
print(a + b)
여기서는 for i in range()처럼 i 변수를 사용하는 대신 (언더바)를 사용하였는데
range 함수를 통해 생성된 숫자 요소를 변수로 선언할 필요가 없기 때문이다
쉽게 말해 i를 활용해 출력할 것이 없기 때문에 를 통한 표현이 가능하다는 것
n = int(input())
sum = 0
for i in range(n + 1):
sum = sum + i
print(sum)
import sys
n = int(input())
for _ in range(n):
a, b = map(int, sys.stdin.readline().split())
print(a + b)
문제에서 for문을 사용할 때 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간 초과가 날 수 있다는 점을 언급하고 있다
또한, 입력 방식으로 sys.stdin.readline을 활용하도록 힌트를 준다
n = int(input())
for i in range(n):
print(i + 1)
정방향은 되는데 역방향으로 생각하는게 안되는
나 자신에게 현타가 잠깐 왔던 시간😭
n = int(input())
for i in range(n):
print(n - i)
n = int(input())
for i in range(1, n + 1):
a, b = map(int, input().split())
print(f'Case #{i}: {a + b}')
이 문제의 관건은 주어진 출력문 형식에 맞추어 출력해야한다는 것
변수와 문자열을 섞어서 출력해야 하는 위와 같은 문제는 f-string이 편하다는 것을 배웠음
f-string은 f라는 접두사를 붙여서 사용하고 변수는 {} 괄호를 사용하여 입력할 수 있다
n = int(input())
for i in range(1, n + 1):
a, b = map(int, input().split())
print(f'Case #{i}: {a} + {b} = {a + b}')
n = int(input())
for i in range(1, n + 1):
print('*'*i)
n = int(input())
for i in range(1, n + 1):
print(" "*(n - i)+ '*'*i)
N, X = map(int, input().split())
array = list(map(int, input().split()))
for i in array:
if i < X:
print(i, end=" ")
입력을 list형태로 받아오는 것과
한줄에 출력하는 것이 관건
원래는 한줄한줄씩 출력이 되지만
end=" "로 작성하면 한줄에 출력이 된다