๐Ÿ’ฏ CodingTest/Programmers

[Programmers] ์‹ ๊ณ ๊ฒฐ๊ณผ ๋ฐ›๊ธฐ

S.Honey 2022. 4. 11. 11:06

๋ฌธ์ œ ํŽ˜์ด์ง€

 

def solution(id_list, report, k):
    count = dict()
    reportCount = dict()

    report = list(set(report)) # ๋™์ผ ์‹ ๊ณ ์— ๋Œ€ํ•œ ์ค‘๋ณต๊ฐ’ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด set ๋ณ€ํ™˜ ํ›„ list ๋ณ€ํ™˜

    for id in id_list: # ๋”•์…”๋„ˆ๋ฆฌ ์ดˆ๊ธฐํ™”
        count[id] = 0    
        reportCount[id] = 0

    for str in report : # report์— ์ €์žฅ๋œ ๊ฐ๊ฐ์˜ ๋ฌธ์ž์—ด ํŒŒ์‹ฑํ•ด ์‹ ๊ณ  ํšŸ์ˆ˜ ๋ˆ„์ 
        src, trg = str.split(' ')
        count[trg] += 1

    for str in report : #
        src, trg = str.split(' ')
        if count[trg] >= k :
            reportCount[src] += 1

    return list(reportCount.values())

 

โ–ถ ๋ฌธ์ œํ’€์ด

 

- ๊ทธ๋ฆฌ๋””ํ•˜๊ฒŒ ๋ฌธ์ œ ์ ‘๊ทผ
1. ์šฐ์„  `count` ๋”•์…”๋„ˆ๋ฆฌ์™€ `reportCount` ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์„ ์–ธ
2. ๊ฐ™์€ ์‹ ๊ณ  ๋‚ด์šฉ(= ์‹ ๊ณ ์ž๋„ ๊ฐ™๊ณ  ์‹ ๊ณ ๋‹นํ•˜๋Š” ์‚ฌ๋žŒ๋„ ๊ฐ™์€)์€ ์—ฌ๋Ÿฌ๋ฒˆ ๋‚˜์™€๋„ 1๋ฒˆ์œผ๋กœ๋งŒ ์ทจ๊ธ‰ => ์ธ์ž๋กœ ๋“ค์–ด์˜จ `report`์—์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด `set` (์ง‘ํ•ฉํ˜•ํƒœ => ์ค‘๋ณต์ด ์—†๋‹ค)์œผ๋กœ ๋ณ€ํ™˜ ํ›„ ๋‹ค์‹œ `list`๋กœ ๋ณ€ํ™˜
3. for๋ฌธ์„ ์ด์šฉํ•ด dictionary๋ฅผ ์ดˆ๊ธฐํ™”
   - ์ž์‹ ์ด ์‹ ๊ณ ๋‹นํ•œ ํšŸ์ˆ˜ = `count` ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅ
   - ๋Œ€์ƒ ์ œ์žฌ ๋Œ€์ƒ์ด ์ž์‹ ์—๊ฒŒ ๋ช‡ ๊ฐœ๊ฐ€ ์˜ฌ์ง€ = `reportCount` ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅ
4. report์— ์ €์žฅ๋œ ๊ฐ๊ฐ์˜ ๋ฌธ์ž์—ด์„ ํŒŒ์‹ฑํ•œ ๋’ค ์‹ ๊ณ  ํšŸ์ˆ˜ ๋ˆ„์ 
5. ๋ˆ„๊ตฐ๊ฐ€์˜ ์‹ ๊ณ  ํšŸ์ˆ˜๊ฐ€ ์ž„๊ณ„๊ฐ’ `k`๋ฅผ ๋„˜์œผ๋ฉด `reportCount` ๋”•์…”๋„ˆ๋ฆฌ์— ๋ˆ„์ 
6. ๊ฒฐ๊ณผ ์ถœ๋ ฅ