A+B - 3
for _ in range(int(input())):
a, b = map(int, input().split())
print(a + b)
사용하지 않는 변수
위 정답 코드에서 range
는 $0$부터 (입력받은 수 - $1$)까지의 정수를 차례대로 돌려줍니다.
그런데 이번 문제에서는 입력받은 수만큼 반복하는 것이 중요하지, 실제로 어떤 값을 돌려받았는지는 중요하지 않습니다.
이렇게 사용하지 않는 변수는 관례로 _
로 표시합니다.
여러 문제에서 첫 입력으로 테스트 케이스의 수를 주는 경우가 많기 때문에, for _ in range(int(input())): ...
도 자주 사용됩니다.
map
이터러블의 모든 멤버에 대해 함수를 적용할 때는 map
을 사용할 수 있습니다.
다음과 같이 사용합니다.
map(함수, 이터러블)
그러면 이터러블
의 모든 멤버에 대해 함수
를 적용한 결과를 이터러블로 돌려줍니다.
예를 들어, 다음 프로그램은 리스트의 문자열들이 나타내는 수를 정수로 바꾼 후 10을 더한 결과를 출력합니다.
strings = ["42", "-5", "0", "360"]
for number in map(int, strings):
print(number + 10)
map
은 함수를 필요할 때마다 적용합니다.
즉, 위 코드에서 모든 strings
의 항목을 한꺼번에 정수로 바꾸는 것이 아니라, for
문에서 이터레이트를 하면서 한 항목씩 int
를 적용합니다.
따라서 이터러블에 항목이 많아도 메모리를 적게 사용하는 장점이 있습니다.
이런 방식을 느긋한 평가(lazy evaluation)라고 합니다.
다중 대입
다중 대입(multiple assignment)은 Python의 강력한 기능 중 하나입니다. 다음과 같이 대입연산자의 왼쪽에 쉼표로 구분한 여러 변수를 지정할 수 있습니다.
name, age, likes_mint_chocolate = "John", 20, True
다중 대입에서는 대입이 이루어지기 전 오른쪽의 표현식들이 모두 계산된 후, 오른쪽 변수들에 순서대로 대입됩니다. 이를 잘 활용하면 동시에 여러 변수들의 값을 쉽게 바꿀 수 있습니다.
a, b = 1, 2
a, b = 3 * (a + 1) * (b + 1), -a * (b + 1)
다중 대입 없이는 아래와 같이 임시 변수를 사용하여 작성해야 합니다.
a = 1
b = 2
a_temp = 3 * (a + 1) * (b + 1)
b_temp = -a * (b + 1)
a = a_temp
b = b_temp
다중 대입을 더 이해하려면 아직 다루지 않은 튜플 자료형과 시퀀스를 알아야 합니다. 이에 대해서는 나중에 다루도록 하겠습니다.
댓글