http://acmicpc.net/problem/10869
{코드}
a, b = map(int, input().split())
print(a+b)
print(a-b)
print(a*b)
print(a//b)
print(a%b)
{설명}
이 문제는 지난 4개의 글을 한문제로 합친 것과 같습니다.
결국 map함수를 통해 정수 두개를 입력받고 문제가 요구하는 각 연산을 실행하면 되는 문제입니다..
이때, /, 즉 나눗셈은 목 연산이므로 //를 써야하고 나머지 연산을 위해 %를 사용하면 각 연산당 한줄씩 출력하면 됩니다.
{코드}
numbers = input().split()
operators = ['+', '-', '*', '//', '%']
for operator in operators:
print(eval(operator.join(numbers)))
{설명}
이걸 파이토닉(Pythonic-파이썬스럽게 만드는 것)하게 만들자면, 파이썬에는 기본적으로 eval이라는 함수가 주어집니다.
eval은 연산식을 인자로 넘겨주며 해당 식의 결과를 반환합니다. (예: eval('5==4')는 False, eval('5*3')는 15를 반환)
eval은 내장되어있는 함수이지만 알고리즘 풀이에서는 되도록 사용하지 않는 편이 좋습니다.
그리고 join은 해당 함수를 부른 문자열을 join의 파라미터의 각 인덱스 사이에 삽입한 결과를 문자열로 반환한다.
join의 예시: 'a'.join('bbb') = 'babab'이며 'a'.join(['b', 'c', 'd']) = 'bacada'
이때 리스트/튜플/집합의 각 원소는 모두 문자열이어야하며 딕셔너리의 경우 키값으로 실행합니다.
결국 numbers에 각 숫자를 담은 리스트를 저장하고, 각 연산자별로 join함수에 numbers를 넣어 불러서 출력을 하면 된다.
'알고리즘 공부 > BOJ백준 풀이' 카테고리의 다른 글
[백준 2588번-파이썬/Python] 곱셈 (0) | 2020.09.23 |
---|---|
[백준 10430번-파이썬/Python] 나머지 (0) | 2020.09.23 |
[백준 1008번-파이썬/Python] A/B (0) | 2020.09.23 |
[백준 10998번-파이썬/Python] A × B (0) | 2020.09.23 |
[백준 1001번-파이썬/Python] A-B (0) | 2020.09.23 |