sladuf
200
sladuf
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (83)
    • ๐Ÿ“š Programming (32)
      • Swift (13)
      • JAVA (2)
      • Python (6)
      • SQL (6)
      • Web (5)
    • ๐Ÿ“ฑ iOS (25)
      • Base (7)
      • SwiftUI (9)
      • UIKit (7)
      • ์ธ๊ฐ• & ์ฑ… (2)
    • ๐Ÿ”— Algorithm (20)
      • Python (12)
      • Swift (3)
      • Tip (5)
    • ๐Ÿ—‚ ETC (6)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์Šค์œ„ํ”„ํŠธ
  • Swift

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๊ธ€์“ฐ๊ธฐ ์„ค์ •
hELLO ยท Designed By ์ •์ƒ์šฐ.
sladuf

200

[Python] ๋ฐฑ์ค€ 7453
๐Ÿ”— Algorithm/Python

[Python] ๋ฐฑ์ค€ 7453

2021. 3. 9. 16:21

 

์„ธ์ƒ ๋ณต์žกํ•˜๊ณ  ๊นŒ๋‹ค๋กœ์› ๋‹ค..

 

 

 

 

์ด๊ฒƒ ์ €๊ฒƒ ์‹œ๋„ํ•ด๋ณด์•˜๋Š”๋ฐ 12์ดˆ๋‚˜ ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์ด ์ž๊พธ ์ดˆ๊ณผ๋ผ์„œ ์ดํ‹€์ด๋‚˜ ๊ฑธ๋ฆฐ ๋ฌธ์ œ,,

๋น„์Šทํ•œ ์œ ํ˜•์˜ ๋ฌธ์ œ๊ฐ€ ๋งŽ๋‹ค. ๋ฐฑ์ค€ 1208๋ฒˆ ๋ฌธ์ œ๋„ ๊ฐ™์€ ์œ ํ˜•์ด๋ฏ€๋กœ ์œ ํ˜•์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ์—์„œ ์ฐธ์กฐ

 

๐Ÿ“Œhttps://990427.tistory.com/48

 

[Python] ๋ฐฑ์ค€ 1208

๊ตฌ๊ธ€๋ง์ด ์ž˜ ์•ˆ๋ผ์„œ...์ง์ ‘ ์“ฐ๋Š” ๋ฆฌ๋ทฐ ๐Ÿ˜… 1182๋ฒˆ ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ๊ณผ ๊ฐ™์€ ์œ ํ˜•์˜ ๋ฌธ์ œ์ด์ง€๋งŒ ๋ฒ”์œ„์™€ ์‹œ๊ฐ„์ œํ•œ ๋“ฑ์œผ๋กœ ๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•ด์•ผํ•œ๋‹ค. n๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ฐ€์ง„ ์ˆ˜์—ด์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜

990427.tistory.com

 

์šฐ์„  1208๋ฒˆ๊ณผ ๊ฐ™์ด ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋”๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค.

์ด์œ ๋Š” ์ •๋ง ๋ชจ๋ฅด๊ฒ ๋‹ค... ๋”•์…”๋„ˆ๋ฆฌ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(1)์ด๊ธด ํ•˜์ง€๋งŒ ์ˆจ์–ด์žˆ๋Š” ์ƒ์ˆ˜๊ฐ€ ๋งค์šฐ ํฌ๋‹ค๊ณ  ํ•œ๋‹ค.

 

 

์‹คํŒจํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ฝ”๋“œ

import sys
from collections import defaultdict

n=int(sys.stdin.readline())
A,B,C,D=[],[],[],[]
for i in range(n):
    a,b,c,d=map(int, sys.stdin.readline().split())
    A.append(a)
    B.append(b)
    C.append(c)
    D.append(d)

ab=defaultdict(int)
cd=defaultdict(int)
for i in range(n):
    for j in range(n):
        ab[A[i]+B[j]]+=1
        cd[C[i]+D[j]]+=1

res=0
for i in ab.keys():
    if cd[-i]:
        res+=(ab[i]*cd[-i])
print(res)

 

์–ด์จŒ๋“  ์œ„ ์ฝ”๋“œ๋กœ ๋ฐฑ์ค€์—์„œ๋Š” ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๊ณ„์†ํ•ด์„œ ๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.

Python3์œผ๋กœ๋Š” ํ†ต๊ณผํ•œ ์‚ฌ๋žŒ์ด ์—†๊ณ  Pypy3๋กœ ํ†ต๊ณผํ•œ ์‚ฌ๋žŒ๋“ค์˜ ์ฝ”๋“œ๋ฅผ ๋ณด์•˜๋‹ค.

๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  while๋ฌธ์œผ๋กœ two-pointer๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

1208๋ฒˆ์— ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๊ฐ€ ๊ท€์ฐฎ์•„์„œ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ ๊ฒฐ๊ตญ ๊ท€์ฐฎ์€ ๊ตฌํ˜„์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค...

 

 

๊ฐ„์‹ ํžˆ ํ†ต๊ณผํ•œ ์ฝ”๋“œ

import sys

n=int(sys.stdin.readline())
A,B,C,D=[],[],[],[]
for i in range(n):
    a,b,c,d=map(int, sys.stdin.readline().split())
    A.append(a)
    B.append(b)
    C.append(c)
    D.append(d)

ab=[]
cd=[]
for i in range(n):
    for j in range(n):
        ab.append(A[i]+B[j])
        cd.append(C[i]+D[j])

ab.sort()
cd.sort()
res=0
l=0
r=len(cd)-1
while l<len(ab) and r>=0:
    if ab[l]+cd[r]>0:
        r-=1
    elif ab[l]+cd[r]<0:
        l+=1
    else:
        a=1
        b=1
        while l<len(ab)-1 and ab[l+1]==ab[l]:
            l+=1
            a+=1
        while r>0 and cd[r-1]==cd[r]:
            r-=1
            b+=1
        res+=(a*b)
        l+=1
        r-=1

print(res)

 

๋ฐฐ์—ด์—์„œ ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ๋ช‡๊ฐœ์ธ์ง€ while๋ฌธ์„ ํ†ตํ•ด ๊ฒ€์‚ฌํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

 

.

.

.

.

.

 

 

์‚ฝ์งˆ์˜ ํ”์ 

 

 

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ”— Algorithm > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ง€ํ˜• ์ด๋™  (0) 2021.03.11
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ  (0) 2021.03.11
[Python] ๋ฐฑ์ค€ 1208  (0) 2021.03.08
[Python] ๋ฐฑ์ค€ 1167, 1967  (0) 2021.03.08
[Python] ๋ฐฑ์ค€ 10917  (0) 2021.03.07
    '๐Ÿ”— Algorithm/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ง€ํ˜• ์ด๋™
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ
    • [Python] ๋ฐฑ์ค€ 1208
    • [Python] ๋ฐฑ์ค€ 1167, 1967
    sladuf
    sladuf

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”