ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
๋ฌธ์ ํ์ด
์ ์ ๋ค๋ฃฌ ๋ถ๋ถ์์ด์ ํฉ 2, ๋ ๋ฐฐ์ด์ ํฉ ํฉ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ํธ๋ ๋ฌธ์ ์ด๋ค. ํ ์ค์ A, B, C, D 4 ์์ ๊ฐ์ด ์๊ณ N๊ฐ์ ์ค์ ๊ฑธ์ณ ์ฌ๋ฌ ์์ ์ ์๋ค์ด ์ฃผ์ด์ง๋ค. ์์ ๋ฌธ์ ๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ ๋ฒ์ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ๋ ๊ฒ์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค. ๋ฐ๋ผ์ A, B์ ๋ํ ๋ถ๋ถํฉ์ ๋ํ ์นด์ดํธ๋ฅผ ์งํํ ํ, 0 - C, D์ ๋ถ๋ถํฉ์ ๊ฒฝ์ฐ์ ์๋ฅผ ์ ๋ต์ผ๋ก ๋ฐ์ํ๋ฉด ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค.
์ฝ๋
from sys import stdin
from collections import defaultdict
def subtotal(lst, select):
global answer
for i in lst[0]:
for j in lst[1]:
if select == "ab":
subtotal_a_b[i + j] += 1
else:
answer += subtotal_a_b[0 - (i + j)]
if __name__ == "__main__":
answer = 0
subtotal_a_b = defaultdict(int)
n = int(stdin.readline())
nums = [list(map(int, stdin.readline().split())) for _ in range(n)]
nums = list(map(list, zip(*nums)))
subtotal(nums[:2], "ab")
subtotal(nums[2:], "cd")
print(answer)
์ ๋ ฅ๋ ๊ฐ์ [A, B], [C, D]๋ก ๋ถ๋ฅํ๊ธฐ ์ํด ํ์ด์ ์ ์น์์ผฐ๋ค. Numpy ์์ด ํ์ด์ ์ ์น์ํค๊ธฐ ์ํด์๋ `map`๊ณผ `zip`์ ํ์ฉํ๋ฉด `list(map(list, zip(*์ ์นํ ํ์ด)))`๊ณผ ๊ฐ์ด ํ ์ค๋ก ์ ์น์ํฌ ์ ์๋ค.
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 1107 ๋ฆฌ๋ชจ์ปจ (0) | 2020.08.19 |
---|---|
๋ฐฑ์ค: 1062 ๊ฐ๋ฅด์นจ (0) | 2020.08.18 |
๋ฐฑ์ค: 2143 ๋ ๋ฐฐ์ด์ ํฉ (0) | 2020.08.17 |
๋ฐฑ์ค: 1208 ๋ถ๋ถ์์ด์ ํฉ 2 (0) | 2020.08.16 |
๋ฐฑ์ค: 1182 ๋ถ๋ถ์์ด์ ํฉ (0) | 2020.08.15 |