[๋ฐฑ์ค€] 30804 ๊ณผ์ผ ํƒ•ํ›„๋ฃจ (python ํŒŒ์ด์ฌ)

2025. 1. 22. 03:08ยท๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

https://www.acmicpc.net/problem/30804

 


์‹ค๋ฒ„2 ๋ผ๋Š” ๊ฒŒ ๋ฏฟ๊ธฐ์ง€ ์•Š๋Š” ๋ฌธ์ œ. ๋‚ด๊ฐ€ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ๊ฐœ๋…์„ ๋ชฐ๋ž๋‹ค๋ฉด ๋ชป ํ’€์—ˆ์„ ๊ฑฐ ๊ฐ™๋‹ค.

์ด๊ฑด ์™œ ์‹ค๋ฒ„์— ์žˆ์„๊นŒ 


์•„์ด๋””์–ด

- ๋ฌธ์ œ์—์„œ ์ œ์‹œํ•˜๋Š” ๊ณผ์ผ ๋‘๊ฐœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ํˆฌ ํฌ์ธํŠธ ๊ฐœ๋…์„ ์‚ฌ์šฉํ–ˆ๋‹ค. 

์ƒ๊ฐ๋ณด๋‹ค ์ž‘์€ N์˜ ํฌ๊ธฐ(200000), ๋„๋„ํ•œ ์‹œ๊ฐ„์ œํ•œ(2์ดˆ), ๊ทธ๋ฆฌ๊ณ  ์ ์€ ๊ณผ์ผ ๊ฐœ์ˆ˜(์ตœ๋Œ€ 9๊ฐœ)๋ฅผ ๋ณด๊ณ  ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๊ณ„์‚ฐํ•ด๋„ ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ๋ฅผ ์ƒ๊ฐํ•˜๋ฉฐ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๊ธธ์ด๊ฐ€ ๊ธด ๊ฒฝ์šฐ๋ฅผ ์ฐพ์•˜๋‹ค.

 

-  ๊ณผ์ผ ์ข…๋ฅ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•  ๋•Œ ํŽธํ•˜๋ ค๊ณ  ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.


์ „์ฒด ์ฝ”๋“œ

N = int(input())
tangList = list(map(int, input().split()))

visited = {}

maxLen = 0
leftPoint = 0
rightPoint = 0

while rightPoint < N:
    nowTang = tangList[rightPoint]

    if nowTang in visited:
        visited[nowTang] += 1
    else:
        visited[nowTang] = 1

    while len(visited) > 2:
        removeTang = tangList[leftPoint]

        visited[removeTang] -= 1

        if visited[removeTang] == 0:
            del visited[removeTang]

        leftPoint += 1
    maxLen = max(maxLen, rightPoint - leftPoint + 1)
    rightPoint += 1

print(maxLen)

์ฝ”๋“œ ์„ค๋ช…

if nowTang in visited:
    visited[nowTang] += 1
else:
    visited[nowTang] = 1

 

๊ณผ์ผ์ด ์ด๋ฏธ ๋”•์…”๋„ˆ๋ฆฌ์— ์žˆ์œผ๋ฉด ๊ณผ์ผ ๊ฐœ์ˆ˜๋งŒ ๋Š˜๋ ค์ฃผ๊ณ  ์—†์œผ๋ฉด ๋”•์…”๋„ˆ๋ฆฌ์— ๊ณผ์ผ์„ ์ถ”๊ฐ€ํ•ด ์ค€๋‹ค.

 

while len(visited) > 2:
    removeTang = tangList[leftPoint]

    visited[removeTang] -= 1

    if visited[removeTang] == 0:
        del visited[removeTang]

    leftPoint += 1

 

์˜ค๋ฅธ์ชฝ ํฌ์ธํ„ฐ๋ฅผ ์ ์  ๋Š˜๋ ค์ฃผ๋‹ค๊ฐ€ ๊ณผ์ผ์ด 3๊ฐœ๊ฐ€ ๋˜๋ฉด while๋ฌธ์œผ๋กœ ๊ณผ์ผ ๊ฐœ์ˆ˜๋ฅผ ์ค„์—ฌ์ค€๋‹ค. ์™ผ์ชฝ ํฌ์ธํ„ฐ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ์”ฉ ๋‹น๊ธฐ๋ฉฐ ๊ณผ์ผ ๊ฐœ์ˆ˜๋ฅผ ์ค„์—ฌ์ค€๋‹ค. ๊ณผ์ผ ๊ฐœ์ˆ˜๊ฐ€ 0์ด ๋œ ๊ณผ์ผ์€ ์‚ฌ์ „์—์„œ ์ง€์›Œ์ฃผ๋ฉด ๋œ๋‹ค.

 

maxLen = max(maxLen, rightPoint - leftPoint + 1)
rightPoint += 1

 

์˜ค๋ฅธ์ชฝ ํฌ์ธํ„ฐ ์œ„์น˜๋งˆ๋‹ค ์ •๋‹ต ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

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

'๐Ÿงฉ Problem Solving > [๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 1244 ์Šค์œ„์น˜ ์ผœ๊ณ  ๋„๊ธฐ (python ํŒŒ์ด์ฌ)  (0) 2025.01.26
[๋ฐฑ์ค€] 4963 ์„ฌ์˜ ๊ฐœ์ˆ˜ (python ํŒŒ์ด์ฌ)  (1) 2025.01.24
[๋ฐฑ์ค€] 2563 ์ƒ‰์ข…์ด (python ํŒŒ์ด์ฌ)  (0) 2024.04.01
[๋ฐฑ์ค€] 7579 ์•ฑ (python ํŒŒ์ด์ฌ)  (0) 2024.03.28
[๋ฐฑ์ค€] 4179 ๋ถˆ! (python ํŒŒ์ด์ฌ)  (0) 2024.03.28
'๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 1244 ์Šค์œ„์น˜ ์ผœ๊ณ  ๋„๊ธฐ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 4963 ์„ฌ์˜ ๊ฐœ์ˆ˜ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 2563 ์ƒ‰์ข…์ด (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 7579 ์•ฑ (python ํŒŒ์ด์ฌ)
์ œ๋ด‰์•„
์ œ๋ด‰์•„
  • ์ œ๋ด‰์•„
    Overthinking
    ์ œ๋ด‰์•„
    fake it till you make it.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿงฉ Problem Solving (83)
        • [๋ฐฑ์ค€] (74)
        • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] (7)
        • [SW Expert Academy] (1)
        • [์•Œ๊ณ ๋ฆฌ์ฆ˜ for PS] (1)
      • ๐Ÿ“ฆ Data Structure (2)
      • ๐Ÿ“œ Language (14)
        • [python] (14)
      • ๐Ÿ–ค Git (1)
      • ๐ŸŒ† ์ผ์ƒ (2)
        • ๐Ÿ’ฌ ๋ฒฝ๋ณด๊ณ  ๋งํ•˜๊ธฐ (2)
      • ๐Ÿ—„๏ธ ๊ธฐํƒ€ (2)
      • ๐Ÿ”ต css (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    imos
    ๋ถ„ํ•  ์ •๋ณต
    ๋ƒ…์ƒ‰
    ๋‹ค์ต์ŠคํŠธ๋ผ
    BFS
    ๊ตฌํ˜„
    ์œ„์ƒ์ •๋ ฌ
    DP
    ๋ฐฑํŠธ๋ž˜ํ‚น
    DFS
    SWEA
    ๋ถ€๋ถ„ํ•ฉ
    ํ”Œ๋กœ์ด๋“œ์›Œ์…œ
    ํˆฌํฌ์ธํ„ฐ
    slicing
    Python
    Bruteforce
    ๋ฐฑ์ค€
    ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ
    ๋ˆ„์ ํ•ฉ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๊ทธ๋ฆฌ๋””
    ์Šคํƒ
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    ์ •์ฒ˜๊ธฐ
    ์žฌ๊ท€
    ๋ฐ๋ธŒ์ฝ”์Šค
    ํŒŒ์ด์ฌ
    boj
    ํŒฐ๋ฆฐ๋“œ๋กฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ œ๋ด‰์•„
[๋ฐฑ์ค€] 30804 ๊ณผ์ผ ํƒ•ํ›„๋ฃจ (python ํŒŒ์ด์ฌ)
์ƒ๋‹จ์œผ๋กœ

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