ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 1713 ํ›„๋ณด ์ถ”์ฒœํ•˜๊ธฐ with Python
    PS 2021. 10. 18. 20:30
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 1713 ํ›„๋ณด ์ถ”์ฒœํ•˜๊ธฐ

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ์‚ฌ์ง„ํ‹€์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 20)
      ์ด ์ถ”์ฒœ ํšŸ์ˆ˜๋Š” 1,000๋ฒˆ ์ดํ•˜์ด๋ฉฐ ํ•™์ƒ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฒˆํ˜ธ๋Š” 1๋ถ€ํ„ฐ 100๊นŒ์ง€์˜ ์ž์—ฐ์ˆ˜
    2. ์‚ฌ์ง„ํ‹€์˜ ๊ฐœ์ˆ˜์™€ ์ „์ฒด ํ•™์ƒ์˜ ์ถ”์ฒœ ๊ฒฐ๊ณผ๊ฐ€ ์ถ”์ฒœ๋ฐ›์€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ์ข… ํ›„๋ณด๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ๊ฒฐ์ •
    3. ๊ตฌํ˜„ & ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์œ ํ˜•์˜ ๋ฌธ์ œ

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

    from sys import stdin
    import heapq
    
    
    def solution(n):
        student = {}
        data = list(map(int, stdin.readline().split()))
        for s in data:
            if s not in student:
                if len(student) >= n:
                    # dict๋ฅผ heapq ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด ์ตœ์†Ÿ๊ฐ’์„ ๋ฝ‘์•„๋ƒ„
                    a = heapq.nsmallest(min(student), student, key=student.get)
                    student.pop(a[0])
    
                student[s] = 1
            else:
                student[s] += 1
    
        return sorted(student.keys())
    
    
    n = int(stdin.readline().rstrip())
    r = int(stdin.readline().rstrip())
    print(*solution(n))

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

    ์˜ˆ์ œ

    3
    9
    2 1 4 3 5 6 2 7 2

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

    2 6 7

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

    1. ์ถ”์ฒœ๋ฐ›์€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ student (dict) ์— ์—†์œผ๋ฉด ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ ,
      student (dict) ์— ์žˆ์œผ๋ฉด + 1์„ ํ•ด์ค€๋‹ค.
      ๋งŒ์•ฝ, ์ƒˆ๋กœ ์ถ”๊ฐ€๋ฅผ ํ•ด์•ผํ•˜๋Š”๋ฐ student ๊ธธ์ด๊ฐ€ ์‚ฌ์ง„ํ‹€์˜ ๊ฐœ์ˆ˜๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํด ๊ฒฝ์šฐ, ๊ฐ€์žฅ ์ ๊ฒŒ ์ถ”์ฒœ ๋ฐ›์€ ํ•™์ƒ ๋˜๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ์‚ฌ์ง„์„ ๋บ€๋‹ค.

    2. student์— ๋‚จ์•„์žˆ๋Š” key๋งŒ ๋ฝ‘์•„ ์ •๋ ฌํ•œ ๋’ค ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    ๐Ÿ’พ ๋Š๋‚€์ 

    1. heapq ์— ๋” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์•Œ์•˜๋‹ค.
    2. ์ผ๋ฐ˜ ๋ฐ˜๋ชฉ + ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ๋” ๋ณด๊ธฐ๊ฐ€ ์ข‹์•˜๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.