[Python] 사용자 입출력(input, int, str, split)

karl·2024년 8월 13일

Backjoon

목록 보기
2/2
post-thumbnail

백준 알고리즘에서 입출력 관련 문제를 풀때 필수로 알아야 하는 부분을 예시와 함께 정리했습니다. 이 글을 쓰는 저와 마찬가지로 아주 초급(브론즈 5) 수준의 문제들이므로 가볍게 보셔도 될 듯합니다.

기초

input?

  • input은 사용자가 키보드로 입력한 모든 것을 문자열로 저장합니다. 아래와 같이 빈 괄호만 넣는다면 별도의 안내 문구 없이 입력할 수 있습니다.
A = input()
  • 만약 안내 문구 또는 질문을 보여주고 해당 내용에 맞게 입력을 받고 싶다면, 괄호 안에 문구를 추가하면 됩니다.
number = input("숫자를 입력해 주세요: ")
  • 다만, input에 입력되는 내용은 문자열로 취급하므로, 3을 입력했더라도 숫자가 아니라 문자열(string)입니다.
    • 숫자 자료형으로 입력받고 싶다면 이렇게 해 보세요.
    number = int(input("숫자를 입력해 주세요: ")

한 단어만 입력

A = input()
print(A)
  • 숫자 자료형이라면 int와 float로 나뉜다.
    • 소수점이 없는 정수형은 int
    • 소수점이 있는 실수형은 float
  • 문자열(string) 자료형은 str

응용

기초에서 배운 내용을 응용하여 실제 알고리즘 연습 문제에 적용해 보겠습니다.

한 줄에 입력

연습문제

문제: 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력: 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력: 첫째 줄에 A+B를 출력한다.

A, B = map(int, input().split())

print(A + B)

한 줄에 입력받고 구분자 출력

연습문제

문제: 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력: 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. A와 B는 콤마(,)로 구분되어 있다. (0 < A, B < 10)
출력: 각 테스트 케이스마다 A+B를 출력한다.

T = int(input())

for i in range(T):
    A, B = map(int, input().split(","))
    print(A+B)

여러 줄에 입력

특정 수의 줄에 입력

연습문제

문제: 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력: 첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 < A, B < 10)
출력: 첫째 줄에 A+B를 출력한다.

A = int(input())
B = int(input())
print(A + B)

특정 수의 줄에 입력(테스트 케이스 수가 주어진 경우)

연습문제

문제: 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력: 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력: 각 테스트 케이스마다 A+B를 출력한다.

T = int(input())

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

특정 수의 줄에 입력(테스트 케이스 수를 모르는 경우)

연습문제

문제: 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력: 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력: 각 테스트 케이스마다 A+B를 출력한다.

while True:
    try:
        A, B = map(int, input().split())
        print(A + B)
    except:
        break

특정 수의 줄에 입력(테스트 케이스 수를 모르고, 마지막 행이 주어진 경우)

연습문제

문제: 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력: 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 입력의 마지막에는 0 두 개가 들어온다.
출력: 각 테스트 케이스마다 A+B를 출력한다.

while True:
    A, B = map(int, input().split())
    
    if A == 0 or B == 0:
        break
    else:
        print(A + B)

참고 자료
https://wikidocs.net/11
https://wikidocs.net/25


글로벌소프트웨어캠퍼스와 교보DTS가 함께 진행하는 챌린지입니다.
profile
seongmin kim

1개의 댓글

comment-user-thumbnail
2024년 8월 13일

순살코드가 되지 않으려면 기초를 탄탄히..!

답글 달기