๊ด€๋ฆฌ ๋ฉ”๋‰ด

Algo ์“ฐ์ž

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

๐Ÿ’ฏ CodingTest/Programmers

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

S.Honey 2022. 4. 9. 23:50
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. ๊ฒฐ๊ณผ ์ถœ๋ ฅ