๋‚ด ์ธ์ƒ์—์„œ ๋ฏฟ์„ ๊ฑด ์˜ค์ง ๋‚˜ ์ž์‹ ๋ฟ!

The only one you can truly trust is yourself.

๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Python ํ”„๋กœ๊ทธ๋ž˜๋ฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV2 ๊ด‘๋ฌผ ์บ๊ธฐ

๐ŸŽฎinspirer9 2023. 6. 23. 02:11
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ์„ค๋ช…

๋งˆ์ธ์€ ๊ณก๊ดญ์ด๋กœ ๊ด‘์‚ฐ์—์„œ ๊ด‘์„์„ ์บ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ธ์€ ๋‹ค์ด์•„๋ชฌ๋“œ ๊ณก๊ดญ์ด, ์ฒ  ๊ณก๊ดญ์ด, ๋Œ ๊ณก๊ดญ์ด๋ฅผ ๊ฐ๊ฐ 0๊ฐœ์—์„œ 5๊ฐœ๊นŒ์ง€ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๊ณก๊ดญ์ด๋กœ ๊ด‘๋ฌผ์„ ์บ˜ ๋•Œ๋Š” ํ”ผ๋กœ๋„๊ฐ€ ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ณก๊ดญ์ด๋กœ ๊ด‘๋ฌผ์„ ์บ˜ ๋•Œ์˜ ํ”ผ๋กœ๋„๋Š” ์•„๋ž˜ ํ‘œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฒ  ๊ณก๊ดญ์ด๋Š” ๋‹ค์ด์•„๋ชฌ๋“œ๋ฅผ ์บ˜ ๋•Œ ํ”ผ๋กœ๋„ 5๊ฐ€ ์†Œ๋ชจ๋˜๋ฉฐ, ์ฒ ๊ณผ ๋Œ์„ ์บ˜๋•Œ๋Š” ํ”ผ๋กœ๋„๊ฐ€ 1์”ฉ ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ณก๊ดญ์ด๋Š” ์ข…๋ฅ˜์— ์ƒ๊ด€์—†์ด ๊ด‘๋ฌผ 5๊ฐœ๋ฅผ ์บ” ํ›„์—๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋งˆ์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ์ง€ํ‚ค๋ฉด์„œ ์ตœ์†Œํ•œ์˜ ํ”ผ๋กœ๋„๋กœ ๊ด‘๋ฌผ์„ ์บ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณก๊ดญ์ด์ค‘ ์•„๋ฌด๊ฑฐ๋‚˜ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด ๊ด‘๋ฌผ์„ ์บก๋‹ˆ๋‹ค.
  • ํ•œ ๋ฒˆ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ๊ณก๊ดญ์ด๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ด‘๋ฌผ์€ ์ฃผ์–ด์ง„ ์ˆœ์„œ๋Œ€๋กœ๋งŒ ์บ˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ด‘์‚ฐ์— ์žˆ๋Š” ๋ชจ๋“  ๊ด‘๋ฌผ์„ ์บ๊ฑฐ๋‚˜, ๋” ์‚ฌ์šฉํ•  ๊ณก๊ดญ์ด๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ๊ด‘๋ฌผ์„ ์บก๋‹ˆ๋‹ค.

์ฆ‰, ๊ณก๊ดญ์ด๋ฅผ ํ•˜๋‚˜ ์„ ํƒํ•ด์„œ ๊ด‘๋ฌผ 5๊ฐœ๋ฅผ ์—ฐ์†์œผ๋กœ ์บ๊ณ , ๋‹ค์Œ ๊ณก๊ดญ์ด๋ฅผ ์„ ํƒํ•ด์„œ ๊ด‘๋ฌผ 5๊ฐœ๋ฅผ ์—ฐ์†์œผ๋กœ ์บ๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ, ๋” ์‚ฌ์šฉํ•  ๊ณก๊ดญ์ด๊ฐ€ ์—†๊ฑฐ๋‚˜ ๊ด‘์‚ฐ์— ์žˆ๋Š” ๋ชจ๋“  ๊ด‘๋ฌผ์„ ์บ˜ ๋•Œ๊นŒ์ง€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ธ์ด ๊ฐ–๊ณ  ์žˆ๋Š” ๊ณก๊ดญ์ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด picks์™€ ๊ด‘๋ฌผ๋“ค์˜ ์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด minerals๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋งˆ์ธ์ด ์ž‘์—…์„ ๋๋‚ด๊ธฐ๊นŒ์ง€ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ํ”ผ๋กœ๋„๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • picks๋Š” [dia, iron, stone]๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
    • 0 ≤ dia, iron, stone ≤ 5
    • dia๋Š” ๋‹ค์ด์•„๋ชฌ๋“œ ๊ณก๊ดญ์ด์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • iron์€ ์ฒ  ๊ณก๊ดญ์ด์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • stone์€ ๋Œ ๊ณก๊ดญ์ด์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • ๊ณก๊ดญ์ด๋Š” ์ตœ์†Œ 1๊ฐœ ์ด์ƒ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • 5 ≤ minerals์˜ ๊ธธ์ด ≤ 50
    • minerals๋Š” ๋‹ค์Œ 3๊ฐœ์˜ ๋ฌธ์ž์—ด๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ ๊ฐ๊ฐ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • diamond : ๋‹ค์ด์•„๋ชฌ๋“œ
    • iron : ์ฒ 
    • stone : ๋Œ

์ž…์ถœ๋ ฅ ์˜ˆ

picks minerals result
[1, 3, 2] ["diamond", "diamond", "diamond", "iron", "iron", "diamond", "iron", "stone"] 12
[0, 1, 1] ["diamond", "diamond", "diamond", "diamond", "diamond", "iron", "iron", "iron", "iron", "iron", "diamond"] 50

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

  • ์ž…์ถœ๋ ฅ ์˜ˆ #1
    • ๋‹ค์ด์•„๋ชฌ๋“œ ๊ณก๊ดญ์ด๋กœ ์•ž์— ๋‹ค์„ฏ ๊ด‘๋ฌผ์„ ์บ๊ณ  ์ฒ  ๊ณก๊ดญ์ด๋กœ ๋‚จ์€ ๋‹ค์ด์•„๋ชฌ๋“œ, ์ฒ , ๋Œ์„ 1๊ฐœ์”ฉ ์บ๋ฉด 12(1 + 1 + 1 + 1+ 1 + 5 + 1 + 1)์˜ ํ”ผ๋กœ๋„๋กœ ์บ˜ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋•Œ๊ฐ€ ์ตœ์†Œ๊ฐ’์ž…๋‹ˆ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ #2
    • ์ฒ  ๊ณก๊ดญ์ด๋กœ ๋‹ค์ด์•„๋ชฌ๋“œ 5๊ฐœ๋ฅผ ์บ๊ณ  ๋Œ ๊ณก๊ดญ์ด๊ณ  ์ฒ  5๊ฐœ๋ฅผ ์บ๋ฉด 50์˜ ํ”ผ๋กœ๋„๋กœ ์บ˜ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋•Œ๊ฐ€ ์ตœ์†Œ๊ฐ’์ž…๋‹ˆ๋‹ค.

ํ’€์ด

  • ๋ฌธ์ œ ๋‚ธ ์‚ฌ๋žŒ์ด ๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ์ข‹์•„ํ•˜๋Š” ๊ฑฐ ๊ฐ™๋„ค? ใ…‹ใ…‹ใ…‹
    • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋กœ๋Š” ๊ณก๊ฐฑ์ด ์ข…๋ฅ˜๋ณ„(dia,iron,stone) ๊ฐฏ์ˆ˜
    • ์ง€๋ฌธ์— ์žˆ๋Š” ๊ณก๊ฐฑ์ด์™€ ๊ด‘๋ฌผ ์กฐํ•ฉ ํ”ผ๋กœ๋„.
    • ๊ทธ๋ฆฌ๊ณ  ๊ณก๊ฐฑ์ด๋Š” ๊ด‘๋ฌผ 5๊ฐœ๋ฅผ ์บ๊ณ  ํŒŒ๊ดด๋œ๋‹ค. ์ค‘๊ฐ„์— ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค.
    • ์ฆ‰, ๊ด‘๋ฌผ์˜ ์ˆœ์„œ๋ฅผ 5๊ฐœ์”ฉ ๋‚˜๋ˆ ์„œ ๊ณก๊ฐฑ์ด ๊ฐฏ์ˆ˜๋งŒํผ๋งŒ ํ”ผ๋กœ๋„๋ฅผ ๊ณ„์‚ฐํ•ด๋ณด๊ณ 
    • ์ œ์ผ ํ”ผ๋กœ๋„๊ฐ€ ์ ์€ ์ˆœ์„œ๋กœ ๊ณก๊ฐฑ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
  • ์ž…์ถœ๋ ฅ ์˜ˆ์ œ๋กœ ๋งž๋‚˜ ํ•œ๋ฒˆ ํ•ด๋ณด์ž.
    • ์ž…์ถœ๋ ฅ ์˜ˆ1 : ๋‹ค+๋‹ค+๋‹ค+์ฒ +์ฒ  | ๋‹ค+์ฒ +๋Œ
    • ์•ž์— ๋‹ค์ด์•„๋ชฌ๋“œ 3๊ฐœ+์ฒ 2๊ฐœ, ๋’ค์—๋Š” ๋‹ค์ด์•„/์ฒ /๋Œ 1๊ฐœ์”ฉ
    • ๊ณก๊ฐฑ์ด 2๊ฐœ ์†Œ๋ชจ๋˜๋Š”๋ฐ ์–ด๋–ค ๊ณก๊ฐฑ์ด๋ฅผ ์จ์•ผ๋˜๋ƒ?
    • ๋‹ค์ด์•„๋ชฌ๋“œ๋Š” ๋‹ค์ด์•„, ๋‹ค์ฒ ๋Œ๋„ ๋‹ค์ด์•„.
    • ๊ทผ๋ฐ ๊ณก๊ฐฑ์ด ๊ฐฏ์ˆ˜๊ฐ€ 1,3,2๋ผ์„œ ๋‹ค์ด์•„๋Š” ํ•œ๋ฒˆ๋งŒ ์“ธ ์ˆ˜ ์žˆ๋‹ค.
    • ๋‹ค์ด์•„๊ฐ€ ์ œ์ผ ๋งŽ์€ ๊ณณ์— ๋‹ค์ด์•„ ๊ณก๊ฐฑ์ด ์‚ฌ์šฉ.
    • ๊ทธ ๋‹ค์Œ ์ฒ ์ด ๋งŽ์€ ๊ณณ์— ์ฒ  ๊ณก๊ฐฑ์ด ์‚ฌ์šฉ, ๋‚˜๋จธ์ง€์— ๋Œ ๊ณก๊ฐฑ์ด ์‚ฌ์šฉํ•˜๋ฉด ๋  ๋“ฏ.
  • ๊ทธ๋ฆฌ๊ณ  ์ด๊ฑฐ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด๋†”์•ผ๋˜๋‚˜?
    • arr[] = [ [1][1][1] ] , [ [5][1][1] ] , [ [25][5][1] ]
    • ๊ทธ๋ƒฅ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ๋‹ค์ด์•„๋ชฌ๋“œ์™€ ์ฒ , ๋Œ์„ 25,5,1๋กœ ๋ฐ”๊ฟ”์•ผ๊ฒ ๋‹ค.
    • ๊ทธ ๋‹ด์— ์ฒ ์€ /5ํ•˜๊ณ , ๋‹ค์ด์•„๋Š” /5/5ํ•˜๋ฉด ๋˜์ž–์•„...
    • ๊ณก๊ฐฑ์ด ํ•ฉ์‚ฐ์œผ๋กœ ๊ด‘๋ฌผ ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ๋ถ€ํ„ฐ...

  • 5๊ฐœ์”ฉ ์ž˜๋ผ์„œ sub_total์ด ์ œ์ผ ํฐ ๋†ˆ๋ถ€ํ„ฐ ๋‹ค์ด์•„๋ชฌ๋“œ ๊ณก๊ฐฑ์ด > ์ฒ  ๊ณก๊ฐฑ์ด > ๋Œ ๊ณก๊ฐฑ์ด ์ˆœ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ... ๊ท€์ฐฎ๋„ค;
def solution(picks, minerals):
    total_fatigability = 0
    answer = []
    sub_total = {}
    s = sum(picks)
    minerals = minerals[:s*5]
    mod = len(minerals) % 5
    
    if mod != 0:
        for i in range(5-mod):
            minerals.append('null')
    
    for m in minerals:
        if m == 'diamond':
            answer.append(25)
        elif m == 'iron':
            answer.append(5)
        elif m == 'stone':
            answer.append(1)
        else:
            answer.append(0)
    
    for i in range(len(answer)//5):
        _tmp = 0
        for j in range(5):
            _tmp += answer[i*5+j]
        sub_total[i] = _tmp
    
    sorted_dict = sorted(sub_total.items(), key= lambda item:item[1], reverse=True)
    
    for sd in sorted_dict:
        if picks[0]>0:
            picks[0] -= 1
            fatigability = 25
        elif picks[1]>0:
            picks[1] -= 1
            fatigability = 5
        else:
            picks[2] -= 1
            fatigability = 1
            
        for j in range(5):
            if answer[sd[0]*5+j] != 0:
                _t = answer[sd[0]*5+j] // fatigability
                if _t < 1:
                    _t = 1
                total_fatigability += _t
            
    return total_fatigability
  • ๋ชฐ๋ผ ๋Œ€์ถฉ ํ’€์—ˆ๋‹ค. ใ…‹

728x90
๋ฐ˜์‘ํ˜•