deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

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

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

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

์ธ๊ธฐ ๊ธ€

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim
Algorithm Problem/Python

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์œ„ํด๋ฆฌ์ฑŒ๋ฆฐ์ง€ 7์ฃผ์ฐจ

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์œ„ํด๋ฆฌ์ฑŒ๋ฆฐ์ง€ 7์ฃผ์ฐจ
Algorithm Problem/Python

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์œ„ํด๋ฆฌ์ฑŒ๋ฆฐ์ง€ 7์ฃผ์ฐจ

2021. 9. 17. 19:48
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

 

  1. ๋ฐฉ์ด ๋น„์–ด์žˆ๊ฑฐ๋‚˜ ๋– ๋‚  ์‚ฌ๋žŒ์ด ์—†์œผ๋ฉด ๋ฐฉ์— ์‚ฌ๋žŒ์„ ๊ณ„์† ์ง‘์–ด ๋„ฃ๋Š”๋‹ค.
  2. ๋– ๋‚  ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ๋ฐฉ์•ˆ์— ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๋‹ค ๋งˆ์ฃผ์นœ ์‚ฌ๋žŒ๋“ค
    1. answer์˜ ์ธ๋ฑ์Šค๊ฐ€ ์‚ฌ๋žŒ, ๊ฐ’์ด ๋งˆ์ฃผ์นœ ์‚ฌ๋žŒ๋“ค ์ง‘ํ•ฉ์ด๋‹ค.
    2. ๋ฐฉ์•ˆ์— ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์„ ๊ฐ ์ธ๋ฑ์Šค๋งˆ๋‹ค ํ•ฉ์ง‘ํ•ฉ ํ•ด์ค€๋‹ค.
  3. ์ง‘ํ•ฉ์˜ ๊ธธ์ด - 1  ์ด ๋งˆ์ฃผ์นœ ์‚ฌ๋žŒ๋“ค ( ๋ณธ์ธ ์ œ์™ธ )

 

๋ฐฉ์„ ์ง‘ํ•ฉ์œผ๋กœ ํ•œ ์ด์œ ๋Š” iterable ํ•œ ๊ฐ์ฒด ์•ˆ์— ํฌํ•จ ๊ด€๊ณ„๋ฅผ ํ™•์ธํ•  ๋•Œ

๋ฆฌ์ŠคํŠธ๋Š” O(N) ์ด์ง€๋งŒ, ์ง‘ํ•ฉ์€ O(1) ์ด๋ฏ€๋กœ

๋งˆ์ฃผ์นœ ์‚ฌ๋žŒ๋“ค์„ ์ง‘ํ•ฉ์œผ๋กœ ํ•œ ์ด์œ ๋Š” ํ•ฉ์ง‘ํ•ฉ์„ ํ•ด์ฃผ๋ฉด์„œ ์ค‘๋ณต์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

def solution(enter, leave):
    N = len(enter)
    answer = [set()] * (N + 1)
    room = set()

    e_idx, l_idx = 0, 0
    while l_idx < N:  # ๋‚˜๊ฐˆ์‚ฌ๋žŒ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

        if e_idx < N:  # ๋“ค์–ด๊ฐˆ ์‚ฌ๋žŒ ์žˆ์„ ๋–„
            if not room or leave[l_idx] not in room:  # ๋น„์–ด์žˆ๊ฑฐ๋‚˜ ๋‚˜๊ฐˆ์‚ฌ๋žŒ์ด ์—†์œผ๋ฉด
                room.add(enter[e_idx])
                e_idx += 1

        if leave[l_idx] in room:  # ๋‚˜๊ฐˆ ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ๋‚˜๊ฐ€
            for person in room:  # ๋‚˜๊ฐˆ ๋•Œ ๋งŒ๋‚œ ์‚ฌ๋žŒ๋“ค
                answer[person] = answer[person].union(room)
            room.remove(leave[l_idx])
            l_idx += 1

    return [len(meet) - 1 for meet in answer[1:]]

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

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

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์œ„ํด๋ฆฌ์ฑŒ๋ฆฐ์ง€ 7์ฃผ์ฐจ  (0) 2021.10.02
[python] ๋ฐฑ์ค€ - 1018. ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ  (0) 2021.09.22
[python] ๋ฐฑ์ค€ - 2485. ๊ฐ€๋กœ์ˆ˜  (0) 2021.09.16
[python] ๋ฐฑ์ค€ - 21608. ์ƒ์–ด ์ดˆ๋“ฑํ•™๊ต  (0) 2021.09.15
[python] ๋ฐฑ์ค€ - 1347. ๋ฏธ๋กœ ๋งŒ๋“ค๊ธฐ  (0) 2021.09.14
  • ๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ
  • ๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ
  • ๐Ÿ“•๋ฌธ์ œ ํ™•์ธ
'Algorithm Problem/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์œ„ํด๋ฆฌ์ฑŒ๋ฆฐ์ง€ 7์ฃผ์ฐจ
  • [python] ๋ฐฑ์ค€ - 1018. ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
  • [python] ๋ฐฑ์ค€ - 2485. ๊ฐ€๋กœ์ˆ˜
  • [python] ๋ฐฑ์ค€ - 21608. ์ƒ์–ด ์ดˆ๋“ฑํ•™๊ต
deo2kim
deo2kim
์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

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

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.