본문 바로가기
Algorithm/BAEKJOON

[BAEKJOON] 단계별로 풀어보기 3. 반복문

by noey_hus 2022. 9. 10.

https://www.acmicpc.net/step/3

 

반복문 단계

1부터 N까지의 합을 구하는 문제. 물론 반복문 없이 풀 수도 있습니다.

www.acmicpc.net

# 2739 : 구구단

N = int(input())

for i in range(1, 10):
  print("{} * {} = {}".format(N, i, N*i))

# 10950 : A+B - 3

T = int(input())

for i in range(T):
  a, b = map(int, input().split())
  print(a+b)

# 8393 : 합

n = int(input())
result = 0

for i in range(1, n+1):
  result += i
print(result)

a += i : a = a + i


# 25304 : 영수증

x = int(input())
n = int(input())
y = 0

for i in range(n):
  a, b = map(int, input().split())
  y += a*b

if x == y:
  print("Yes")
else:
  print("No")

# 15552 : 빠른 A+B

import sys

T = int(input())

for i in range(T):
  a, b = map(int, sys.stdin.readline().split())
  print(a+b)

Colab에서는 error 발생 (IDLE Shell에서 실행시 정상적으로 작동)

  • input()과 sys.stdin.readline()의 차이점
    • input은 입력받은 값의 개행(줄바꿈, \n) 문자를 삭제시켜 받아옴
    • sys.stdin.readline은 개행 문자를 포함한 값을 받아옴 => input보다 빠름. 줄바꿈을 한 정보를 입력받을 때도 유용함
  • sys.stdin.readline()
    • 한줄 단위로 입력받기 때문에 개행문자가 같이 입력 받아짐 (ex. 3 입력 -> 3\n 저장)
    • ^z를 사용하면 입력받기를 종료해줌
    • 변수 타입이 문자열 형태(str)로 저장됨
    • 개행문자를 제거하기 위해 int()(정수의 경우), strip()(문자열의 경우; 문자열 맨 앞과 맨 끝의 공백문자 제거) 이용

# 11021 : A+B - 7

T = int(input())

for i in range(1, T+1):
  a, b = map(int, input().split())
  print(f"Case #{i}: {a+b}")

# 11022 : A+B - 8

T = int(input())

for i in range(1, T+1):
  a, b = map(int, input().split())
  print(f"Case #{i}: {a} + {b} = {a+b}")

# 2438 : 별 찍기 - 1

n = int(input())

for i in range(1, n+1):
  print("*"*i)

# 2439 : 별 찍기 - 2

n = int(input())

for i in range(1, n+1):
  print(" "*(n-i)+"*"*i)

# 10871 : X보다 작은 수

n, x = map(int, input().split())
n_list = list(map(int, input().split()))
result_list = []

for i in n_list:
  if i < x:
    result_list.append(str(i))

print(" ".join(result_list))
  • join
    • "구분자".join(리스트) : 리스트의 값들 사이에 구분자를 넣어서 하나의 문자열로 합쳐줌

# 10952 : A+B - 5

while True:
  a, b = map(int, input().split())
  if a == 0 and b == 0:
    break
  else:
    print(a+b)

# 10951 : A+B - 4

while True:
  try:
    a, b = map(int, input().split())
    print(a+b)
  except:
    break
  • try / except 를 이용한 예외 처리
    • try : 예외가 발생할 가능성이 있는 코드
    • except : 예외가 발생했을 때 실행할 코드

# 1110 : 더하기 사이클

n = int(input())
num = n
i = 0

while True:
  i += 1
  if num < 10:
    num = num * 10 + num
  else:
    num = (num%10) * 10 + (num//10 + num%10)%10

  if num == n:
    break

print(i)
  • num % 10 : 두 자리 수에서 일의 자리 수 출력
  • num // 10 : 두 자리 수에서 십의 자리 수 출력