입출력에 관한 기본

송현석·2022년 7월 11일
0

알고리즘(Algorithm)

목록 보기
1/13
post-thumbnail

1. 출력

[문제] https://www.acmicpc.net/problem/2557
Hello World!를 출력하시오.

  • 이 문제는 Hello World!를 출력하길 원하는 것이고 파이썬에서는 print() 함수를 이용하여 출력할 수 있다.
print("Hello World!")
  • Hello World!를 ""(큰따옴표) 안에 두어 출력했는데, 문자열의 경우 컴퓨터에서 인식하기 위해 " " 안에 두어 출력을 해야 한다. 만약 문자열이 아닌 숫자 3을 출력한다면 print(3) 과 같이 해서 출력할 수 있다.

2. 입력

① 하나를 입력받기

  • 파이썬에서 숫자 하나를 입력받기 위해서는 변수=int(input()) 를 통해 입력받을 수 있다.
ex) 입력 : 3

=> num = int(input())
num = 3

② 한 줄을 입력받기

  • 한 줄에 숫자 두 개가 있다면 map(int, input().split()) 을 통해 입력받을 수 있다(이 경우에는 받을 변수의 개수를 지정할 수 있다).
ex) 입력 : 3 5

=> a, b = map(int, input().split())
a = 3, b = 5

map 함수??

  • 리스트의 요소를 지정된 함수로 처리 => 여러 개의 데이터를 한 번에 다른 형태로 변환하기 위해 사용
  • 특징
    • 원본 리스트를 변경하지 않고 새 리스트를 생성
    • map 타입으로 결과를 리턴하기 때문에 리스트나 튜플 등으로 변환
      # 실수로 저장된 모든 요소를 정수로 변환
      >> a = [1.2, 2.5, 3.7, 4.6]
      >> a = list(map(int, a))
      >> a
      [1, 2, 3, 4]

③ 리스트를 통해 한 줄을 입력받기

  • 한 줄에 숫자 여러 개(1차원 배열)가 있다면 map(int, input().split()) 을 통해 받은 여러 개의 수를 list 배열 안에 넣어 입력받을 수 있다.
입력 : 1 2 3 4 5 6 7 8 9

=> num = list(map(int, input().split()))

num 이라는 배열 안에는 num[0] = 1, num[1] = 2, ..., num[7] = 8, num[8] = 9 가 들어 있다.

④ 한 줄로 문자열 변수 여러 개를 입력받기

입력 : abc defg

a, b = input().split()

a = abc, b = defg

⑤ 문자열 여러 줄을 입력받기 (1)

  • 변수명 = [input() for _ in range(n)] 와 같이 range 안에 변숫값을 통해 몇 개의 줄을 입력 받을지 정할 수 있다.
ex)
ABCDEF
BCDEFA
CDEFAB

str = [input() for _ in range(3)]
str[0] = ABCDEF, str[1] = BCDEFA, str[2] = CDEFAB

⑥ 문자열 여러 줄을 입력받기 (2)

  • 한 줄에 띄어쓰기 없이 정수를 여러 개 받았을 때, 2차원 배열 형태로 저장하는 방법이다.
  • 변수명 = [list(map(int, input()) for _ in range(n)] 과 같이 range 안에 변숫값을 통해 몇 개의 줄을 입력받을 지 정할 수 있다.
ex)
0101
1010
0101
1010

arr = [list(map(int, input())) for _ in range(4)]

arr[0][0] = 0, arr[0][1] = 1, arr[0][2] = 0. arr[0][3] = 1
arr[1][0] = 1, arr[1][1] = 0, arr[1][2] = 1. arr[1][3] = 0
arr[2][0] = 0, arr[2][1] = 1, arr[2][2] = 0. arr[2][3] = 1
arr[3][0] = 1, arr[3][1] = 0, arr[3][2] = 1. arr[3][3] = 0

⑦ 2차원 배열을 입력받기

  • 한 줄에 띄어쓰기가 있는 배열을, 여러 개의 줄을 통해 입력받을 때, 2차원 배열 형태로 저장하는 방법이다.
  • 변수명 = [list(map(int, input().split())) for _ in range(n)] 과 같이 range 안에 변숫값을 통해 몇 개의 줄을 입력받을 지 정할 수 있다.
ex)
1 2 3 4 5
6 7 8 9 10
5 4 3 2 1

arr = [list(map(int, input().split())) for _ in range(3)]

arr[0][0] = 1, arr[0][1] = 2, arr[0][2] = 3, arr[0][3] = 4, arr[0][4] = 5
arr[1][0] = 6, arr[1][1] = 7, arr[1][2] = 8, arr[1][3] = 9, arr[1][4] = 10
arr[2][0] = 5, arr[2][1] = 4, arr[2][2] = 3, arr[2][3] = 2, arr[2][4] = 1

예제1. 사칙연산

문제출처 : https://www.acmicpc.net/problem/10869
[문제]
두 자연수 A와 B가 주어진다. 이때, A + B, A - B, A * B, A / B(몫). A % B(나머지)를 출력하는 프로그램을 작성하시오.

[입력]
두 자연수 A와 B가 주어진다. (1 <= A, B <= 10,000)

[출력]
첫째 줄에 A + B, 둘째 줄에 A - B, 셋째 줄에 A * B, 넷째 줄에 A / B, 다섯쨰 줄에 A % B를 출력한다.

[풀이]

a, b = map(int, input().split())
print(a + b)
print(a - b)
print(a * b)
print(int(a / b))
print(a % b)
profile
데이터 사이언스 입문

0개의 댓글