티스토리 뷰

백준 문제풀이를 시작했다. 

평소 프로그래머스 문제들만 풀다가 처음 백준을 풀기 시작했는데 변수 입력받는 것부터 헤매서 정리를 하려고 한다. 

 

 

www.acmicpc.net/problem/1000

 

1000번: A+B

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

split()

a.split()처럼 괄호 안에 아무 값도 넣어 주지 않으면 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나누어 준다. 만약 b.split(':')처럼 괄호 안에 특정 값이 있을 경우에는 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다. 

 

input().split()

여러개 입력받을 때. 리스트 형태로 반환

 

map

map(데이터 타입, 리스트) : 리스트 원소들을 해당 데이터 타입으로 변환

# sys.stdin.readline() 이용
import sys
a, b = map(int, sys.stdin.readline().split())
print(a+b)

# input() 이용
a, b = map(int, input().split())
print(a+b)

sys.stdin.readline()과 input()의 차이는 또 다른 글에서 정리해야겠다.

일단 전자가 더 빠른 방식이라는 것을 알고 넘어가자!

 

 

www.acmicpc.net/problem/2558

 

2558번: A+B - 2

첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 < A, B < 10)

www.acmicpc.net

a = int(input())
b = int(input())
print(a+b)

 

 

www.acmicpc.net/problem/10950

 

10950번: A+B - 3

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

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

for i in range(n) 에서 i가 의미 없을 때, _로 대체하여 반복문을 사용한다.

 

 

www.acmicpc.net/problem/10951

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

입력이 몇개인지 주어지지 않은 경우, EOF까지 입력받으면 된다.

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

try except 처리문

예외가 발생했을 때도 스크립트 실행을 중단하지 않고 계속 실행하게 해주는 예외 처리 방법.

try의 코드에서 에러가 발생했을 때만 except의 코드가 실행된다.

 

dojang.io/mod/page/view.php?id=2398

여기서 try except 문의 좀더 자세한 문법을 확인할 수 있다.

 

파이썬 코딩 도장: 38.1 try except로 사용하기

Unit 38. 예외 처리 사용하기 예외(exception)란 코드를 실행하는 중에 발생한 에러를 뜻합니다. 다음과 같이 10을 어떤 값으로 나누는 함수 ten_div가 있을 때 인수에 따라 정상으로 동작하기도 하고 에

dojang.io

여러 줄을 입력받을 땐 sys.stdin를 이용할 수도 있다.

import sys
for line in sys.stdin:
    a, b = map(int, line.split())
    print(a+b)

sys.stdin을 이용하면 input보다 좀더 빠르게 처리된다. 

이 문제에서는 효율성 측면에서 많이 도움되진 않지만 입력값이 많을 땐 input 보다 sys.stdin을 이용해야겠다.