https://www.acmicpc.net/problem/1001
백준 1001번 문제는 두 정수의 차(A-B)를 구하는 문제입니다.
1000번 문제의 두 정수의 합(A+B)을 구하는 문제의 코드를 적절히 활용하면 됩니다.
1000번 코드는 아래에 있으니 참고하시기 바랍니다.
https://like-a-happy-cat.tistory.com/2
1000번과 마찬가지로 input() 함수를 이용하는 방법과
sys.stdin.readline()을 이용하는 방법 두 가지가 있습니다.
1. input() 함수를 이용한 풀이
<코드>
a, b = map(int, input().split())
print(a - b)
(1)
input()으로 두 정수가 포함된 문자열을 입력받습니다.
(input()은 문자열을 입력받는 함수이므로,
숫자를 입력하더라도 아직은 문자열이라 인식합니다.)
예를 들어, 5와 2를 입력했다고 한다면,
5(공백)2
[문자열 형태]
사용자는 두 정수를 공백을 두고 입력하므로
split 메서드를 이용하여 공백을 기준으로 문자열을 나눕니다.
(split() 대신 split(" ")도 가능합니다.)
5와 2로 나뉨
map 함수는 문자열 상태인 5와 2에 int(정수형)을 적용합니다.
a와 b에 각각 숫자(정수) 5와 2가 저장되므로
(2)
print(a - b)에 의해
a와 b를 뺀 3이 출력(print)됩니다.
split 메서드
문자열.split("특정 문자")의 구조로 사용합니다.
문자열의 특정 문자를 기준으로 나눠줍니다.(특정 문자는 삭제됩니다.)
# split(나누다, 분열시키다)
map 함수
map(함수, 반복 가능한 객체)의 구조로 사용합니다.
반복 가능한 객체의 요소들에 함수를 적용하는 역할을 해준다고 이해하면 됩니다.
2. sys.stdin.readline()를 이용한 풀이
<코드>
import sys
a, b = map(int, sys.stdin.readline().split())
print(a - b)
input 대신 sys.stdin.readline()을 사용하기도 합니다.
input 함수는 백준 문제풀이 시 시간 초과가 발생하는 경우가 있으므로
2개 이상 입력받을 경우 sys.stdin.readline()을 사용합니다.
(1)
import(가져오다)를 통해 모듈 sys를 가져옵니다.
(2)
sys.stdin.readline()은 다음과 같은 의미입니다.
sys 모듈에 내장된 표준 입력(stdin, standard input)을 사용하여
데이터로부터 한 줄 단위로 입력값들을 읽어(readline)오겠다.
다만, 개행 문자(\n)를 제거해주는 input과 달리
sys.stdin.readline()은 제거해주지 않아 strip 메서드를 사용해야 합니다.
하지만 map(int, ~)에 의해 문자열을 정수형으로 변환하였으므로
strip 메서드를 사용하지 않아도 됩니다.
>>> s = '5\n' # 변수 s에 문자열 '5\n' 저장
>>> int(s) # 정수형으로 형 변환
5 # 개행문자 \n이 사라진다
이하 동일합니다.
코린이 대학생의 풀이였습니다.
풀이에 오류가 있거나 빈약한 부분이 있다면 얼마든지 댓글 남겨주시기 바랍니다.
https://like-a-happy-cat.tistory.com/
'프로그래밍 > 백준' 카테고리의 다른 글
[파이썬(Python)] 백준 10869번 사칙연산 (0) | 2021.10.07 |
---|---|
[파이썬(Python)] 백준 1008번 A/B : 두 정수 나누기 구하기 (0) | 2021.10.07 |
[파이썬(Python)] 백준 10998번 A*B : 두 정수의 곱 구하기 (0) | 2021.10.07 |
[파이썬(Python)] 백준 2557번 Hello World : 파이썬 출력(print) (0) | 2021.10.07 |
[파이썬(Python)] 백준 1000번 A+B : 파이썬 두 정수의 합 구하기 (0) | 2021.10.06 |