ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 1700 ๋ฉ€ํ‹ฐํƒญ ์Šค์ผ€์ค„๋ง with Python
    PS 2022. 6. 16. 00:19
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 1700 ๋ฉ€ํ‹ฐํƒญ ์Šค์ผ€์ค„๋ง

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ๊ธฐ์ˆ™์‚ฌ์—์„œ ์‚ด๊ณ  ์žˆ๋Š” ์ค€๊ทœ๋Š” ํ•œ ๊ฐœ์˜ ๋ฉ€ํ‹ฐํƒญ์„ ์ด์šฉํ•˜๊ณ  ์žˆ๋‹ค.
    1. ์ค€๊ทœ๋Š” ํ‚ค๋ณด๋“œ, ํ—ค์–ด๋“œ๋ผ์ด๊ธฐ, ํ•ธ๋“œํฐ ์ถฉ์ „๊ธฐ, ๋””์ง€ํ„ธ ์นด๋ฉ”๋ผ ์ถฉ์ „๊ธฐ ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ „๊ธฐ์šฉํ’ˆ์„
      ์‚ฌ์šฉํ•˜๋ฉด์„œ ์–ด์ฉ” ์ˆ˜ ์—†์ด ๊ฐ์ข… ์ „๊ธฐ์šฉํ’ˆ์˜ ํ”Œ๋Ÿฌ๊ทธ๋ฅผ ๋บ๋‹ค ๊ฝ‚์•˜๋‹ค ํ•˜๋Š” ๋ถˆํŽธํ•จ์„ ๊ฒช๊ณ  ์žˆ๋‹ค.
    1. ์ค€๊ทœ๋Š” ์ž์‹ ์˜ ์ƒํ™œ ํŒจํ„ด์„ ๋ถ„์„ํ•˜์—ฌ, ์ž๊ธฐ๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ „๊ธฐ์šฉํ’ˆ์˜ ์‚ฌ์šฉ์ˆœ์„œ๋ฅผ ์•Œ์•„๋‚ด์—ˆ๊ณ ,
      ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”Œ๋Ÿฌ๊ทธ๋ฅผ ๋นผ๋Š” ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ์•ˆํ•˜์—ฌ ๋ณด๋‹ค ์พŒ์ ํ•œ ์ƒํ™œํ™˜๊ฒฝ์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.
    1. 3 ๊ตฌ(๊ตฌ๋ฉ์ด ์„ธ ๊ฐœ ๋‹ฌ๋ฆฐ) ๋ฉ€ํ‹ฐํƒญ์„ ์“ธ ๋•Œ, ์ „๊ธฐ์šฉํ’ˆ์˜ ์‚ฌ์šฉ ์ˆœ์„œ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฃผ์–ด์ง„๋‹ค๋ฉด,
    1. 1.ํ‚ค๋ณด๋“œ
    2. 2.ํ—ค์–ด๋“œ๋ผ์ด๊ธฐ
    3. 3.ํ•ธ๋“œํฐ ์ถฉ์ „๊ธฐ
    4. 4.๋””์ง€ํ„ธ ์นด๋ฉ”๋ผ ์ถฉ์ „๊ธฐ
    5. 5.ํ‚ค๋ณด๋“œ
    6. 6.ํ—ค์–ด๋“œ๋ผ์ด๊ธฐ
    1. ํ‚ค๋ณด๋“œ, ํ—ค์–ด๋“œ๋ผ์ด๊ธฐ, ํ•ธ๋“œํฐ ์ถฉ์ „๊ธฐ์˜ ํ”Œ๋Ÿฌ๊ทธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋ฉ€ํ‹ฐํƒญ์— ๊ฝ‚์€ ๋‹ค์Œ
      ๋””์ง€ํ„ธ ์นด๋ฉ”๋ผ ์ถฉ์ „๊ธฐ ํ”Œ๋Ÿฌ๊ทธ๋ฅผ ๊ฝ‚๊ธฐ ์ „์— ํ•ธ๋“œํฐ์ถฉ์ „๊ธฐ ํ”Œ๋Ÿฌ๊ทธ๋ฅผ ๋นผ๋Š” ๊ฒƒ์ด ์ตœ์ ์ผ ๊ฒƒ์ด๋ฏ€๋กœ ํ”Œ๋Ÿฌ๊ทธ๋Š” ํ•œ ๋ฒˆ๋งŒ ๋นผ๋ฉด ๋œ๋‹ค.
    1. ์ฒซ ์ค„์—๋Š” ๋ฉ€ํ‹ฐํƒญ ๊ตฌ๋ฉ์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 100)๊ณผ ์ „๊ธฐ ์šฉํ’ˆ์˜ ์ด ์‚ฌ์šฉํšŸ์ˆ˜ K (1 ≤ K ≤ 100)๊ฐ€ ์ •์ˆ˜๋กœ ์ฃผ์–ด์ง„๋‹ค.
    1. ๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” ์ „๊ธฐ์šฉํ’ˆ์˜ ์ด๋ฆ„์ด K ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๋กœ ์‚ฌ์šฉ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์ค„์˜ ๋ชจ๋“  ์ •์ˆ˜ ์‚ฌ์ด๋Š” ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ๋‹ค.
    1. ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin
    
    n, m = map(int, stdin.readline().split())
    electronics = list(map(int, stdin.readline().split()))
    plug, ans = [], 0
    
    for i in range(m):
        if electronics[i] in plug:
            continue
    
        if len(plug) < n:
            plug.append(electronics[i])
            continue
    
        indexs = []
        for j in range(n):
            try:
                idx = electronics[i:].index(plug[j])
            except:
                idx = 101
    
            indexs.append(idx)
    
        pull_out = indexs.index(max(indexs))
        del plug[pull_out]
        plug.append(electronics[i])
        ans += 1
    
    print(ans)

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    2 7
    2 3 2 3 1 2 7

    ์‹คํ–‰๊ฒฐ๊ณผ

    2

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. ์‚ฌ์šฉํ•˜๋Š” ์ „๊ธฐ์šฉํ’ˆ์„ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•˜๊ณ , ๋‹ค์Œ์— ์‚ฌ์šฉํ•  ์ „๊ธฐ์šฉํ’ˆ ๋ฒˆํ˜ธ๋ฅผ ๊ฒ€์‚ฌํ•˜๋ฉด์„œ ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.
      ์ „๊ธฐ์šฉํ’ˆ์€ ์‚ฌ์šฉํ•  ์ˆœ์„œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋‹ค.
    1. ํ”Œ๋Ÿฌ๊ทธ ๋ฆฌ์ŠคํŠธ์—๋Š” n๊ฐœ๋งŒํผ ์ „๊ธฐ์šฉํ’ˆ ๋ฒˆํ˜ธ๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋Š”๋ฐ, ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ๊ฐ€ ์‚ฌ์šฉ์ค‘์ด์ง€ ์•Š๊ฑฐ๋‚˜
      ๋‹ค์Œ์— ์‚ฌ์šฉํ•  ์ „๊ธฐ์šฉํ’ˆ์˜ ๋ฒˆํ˜ธ๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ์— ์žˆ๋‹ค๋ฉด continue.
    1. ์‚ฌ์šฉํ•  ์ „๊ธฐ์šฉํ’ˆ์˜ ๋ฒˆํ˜ธ๊ฐ€ ํ”Œ๋Ÿฌ๊ทธ ๋ฆฌ์ŠคํŠธ์— ์—†๊ณ , ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ๊ฐ€ ์‚ฌ์šฉ์ค‘์ด๋ผ๋ฉด index๋ฅผ ์ €์žฅํ•  ์ธ๋ฑ์Šค ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
    1. ๋งŒ์•ฝ ๋‹ค์Œ ์‚ฌ์šฉ์ˆœ์„œ๊ฐ€ ์—†๋‹ค๋ฉด ์ด ์‚ฌ์šฉํšŸ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์ด 100 ์ด๊ธฐ ๋•Œ๋ฌธ์— 101๋กœ ์ €์žฅํ•˜์—ฌ ๋‹ค์Œ์— ์‚ฌ์šฉํ•  ์ผ์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ํ‘œ์‹œํ•ด์ค€๋‹ค.
    1. plug_out ์„ ์ธ๋ฑ์Šค ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ€์žฅ ํฐ ์ธ๋ฑ์Šค๋กœ ์ •ํ•˜๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ ์‚ฌ์šฉ ์ˆœ์„œ๊ฐ€ ์—†๊ฑฐ๋‚˜ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”Œ๋Ÿฌ๊ทธ์—์„œ ์‚ญ์ œํ•œ๋‹ค.
    1. ํ”Œ๋Ÿฌ๊ทธ์— ์‚ฌ์šฉํ•  ์ „๊ธฐ์šฉํ’ˆ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ํ”Œ๋Ÿฌ๊ทธ์—์„œ ์ „๊ธฐ์šฉํ’ˆ์„ ๋นผ๋Š” ํšŸ์ˆ˜์— 1์„ ๋”ํ•œ๋‹ค.

    ๐Ÿ’พ ๋ฐฐ์šด์ 

    1. ๊ทธ๋ฆฌ๋””๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ํ’€์ด๋ฅผ ๋– ์˜ฌ๋ฆด ๋•Œ์˜ ํ๋ฆ„์ด ์ž˜ ๋˜์ง€์•Š๋Š” ๊ฒƒ์ด ๋งค์šฐ ํž˜๋“  ์ผ์ด๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.