티스토리 뷰

A+B문제를 통해 파이썬으로 어떻게 입력을 처리하고 합을 출력할 수 있는지 물어보는 문제들에 대하여 총정리하였습니다. BOJ에 이러한 개념들을 확실하게 테스트할 수 있는 문제가 많으니 확실히 익혀둘 수 있도록 좋은 문제를 알아보겠습니다.

A+B 문제 모음
A+B - 1 (백준 1000번)
A+B - 2 (백준 2558번)
A+B - 3 (백준 10950번)
A+B - 4 (백준 10951번)
A+B - 5 (백준 10952번)
A+B - 6 (백준 10953번)
A+B - 7 (백준 11021번)
A+B - 8 (백준 11022번)
A+B - 9 (백준 15740번)

 

A+B - 1 (백준 1000번)

파이썬에서는 map함수가 제공되어 각 변수에 데이터를 각각 저장할 수 있습니다. 사용방법은 아래와 같습니다.

  • map('처리할 데이터 형태', '입력한 데이터')

해당 문제에서는 숫자 입력이 '1 1'과 같은 형태로 주어집니다. 따라서 입력한 데이터가 '1 1'이라는 문자열로 받아와지고, 이를 split 함수로 쪼개어 둡니다. 그 후 int형태로 데이터를 변환 후 각각 변수 a와 b에 저장합니다.

아래 코드를 이용하여 간단하게 문제를 풀 수 있지만, map함수에 개념이 없는 상황이라면 입력값 처리하는 데 고민이 많으셨을 것입니다.

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

 

A+B - 2 (백준 2558번)

두 숫자가 한 줄씩 입력되는 형태이기 때문에, 따로 입력을 처리하지 않고 아래와 같이 처리하여 합을 출력하면 해결할 수 있습니다.

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

 

A+B - 3 (백준 10950번)

반복할 횟수를 알려주고, 그 반복되는 만큼 숫자를 입력받아 합을 출력해주면 되겠습니다.

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

 

A+B - 4 (백준 10951번)

이번 문제는 입력이 없을 때까지 while문을 통해 입력을 받아야 합니다. 여기에서 '입력이 없을 때까지'라는 말이 중요한데, 이는 try~except구문을 통해서 예외처리를 해주어야 합니다. try문에는 저희가 실행해야 하는 숫자를 입력받아 합을 출력하는 구문을 작성해줍니다. 그리고 except구문에는 숫자가 주어지지 않을 경우를 작성해주면 되기 때문에 break만 작성하여 문제를 마무리합니다.

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

 

A+B - 5 (백준 10952번)

이번에는 '0 0'이 입력될 때까지 반복문을 지속하여 덧셈을 출력하는 문제입니다. while문을 통해 무한 반복문을 만들어주시고, 두 숫자가 모두 0일 때 break를 통해 반복문을 탈출하여 문제를 풀어주시면 됩니다.

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

 

A+B - 6 (백준 10953번)

이번에는 숫자가 '1 1'과 같은 공백이 있는 형태가 아니라 ', '쉼표로 구분하여 주어지는 문제입니다. split을 이용하여 쉼표를 기준으로 분리해주면 되기 때문에 해당 부분만 수정해주시면 A+B-4 문제와 동일한 문제입니다. split함수에 변수를 적용할 수 있는지 묻는 문제가 되겠습니다.

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

 

A+B - 7 (백준 11021번)

주어진 정수를 입력받아서 'Case #1 : A+B'의 형태로 출력 형식에만 신경 써서 작성해주면 무난히 통과할 수 있는 문제입니다.

case = int(input())
for i in range(case) :
    a,b = map(int,input().split())
    print('Case #%d: %d'%(i+1,a+b))

 

A+B - 8 (백준 11022번)

주어진 두 정수를 입력받아서 'Case #1 : A + B = C'의 형태로 출력해야 하기 때문에 출력 형태만 신경 써주시면 7번 문제와 다를 것이 없는 문제입니다.

case = int(input())
for i in range(case) :
    a,b = map(int,input().split())
    print('Case #%d: %d + %d = %d'%(i+1,a,b,a+b))

 

A+B - 9 (백준 15740번)

A+B - 1번과 마찬가지로 해결할 수 있습니다. 파이썬에서는 특별히 제한을 두고 있는 것 같지는 않아 간단히 해결할 수 있습니다.

a ,b = map(int,input().split())
print(a+b)
댓글
공지사항