Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„ (level 1)

๊ฐ์ž ๐Ÿฅ” 2021. 8. 18. 17:01
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ๋งํฌ

https://programmers.co.kr/learn/courses/30/lessons/77484/

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„

๋กœ๋˜ 6/45(์ดํ•˜ '๋กœ๋˜'๋กœ ํ‘œ๊ธฐ)๋Š” 1๋ถ€ํ„ฐ 45๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘ 6๊ฐœ๋ฅผ ์ฐ์–ด์„œ ๋งžํžˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ณต๊ถŒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๋กœ๋˜์˜ ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. 1 ์ˆœ์œ„ ๋‹น์ฒจ ๋‚ด์šฉ 1 6๊ฐœ ๋ฒˆํ˜ธ๊ฐ€ ๋ชจ๋‘ ์ผ์น˜ 2 5๊ฐœ ๋ฒˆํ˜ธ

programmers.co.kr

 

๋‚˜์˜ ํ’€์ด

  1. ๋งž์ถ˜ ๊ฐฏ์ˆ˜๋ฅผ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์–ด์„œ ๋“ฑ์ˆ˜๋Š” ์ธ๋ฑ์Šค๋กœ ๋ฝ‘์•„์˜จ๋‹ค.
  2. lottos์™€ win nums ์‚ฌ์ด์—์„œ ๊ฒน์น˜๋Š” ๋ฒˆํ˜ธ๋ฅผ ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌํ•œ ๋’ค, ๊ฐฏ์ˆ˜๋ฅผ ์„ธ์–ด ์ตœ์ € ์ˆœ์œ„๋ฅผ ๊ตฌํ•œ๋‹ค.
  3. 0์ผ ๊ฒฝ์šฐ์—๋Š” '๋ฌด์กฐ๊ฑด ๋งž์ถ˜๋‹ค'๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ์ตœ๊ณ  ์ˆœ์œ„๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์ €์ˆœ์œ„๋กœ ์‚ฐ์ •๋๋˜ ๊ฐฏ์ˆ˜์— 0์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋”ํ•ด์ค€๋‹ค.
  4. lottos๊ฐ€ ์ „๋ถ€ 0 ์ด์–ด์„œ len(same) ์ด 0์ด๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋ฅผ ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•ด์ค˜์•ผ ํ–ˆ๋‹ค. (if๋ฌธ์œผ๋กœ ์ฒ˜๋ฆฌํ–ˆ๋‹ค.)
def solution(lottos, win_nums):
    
    price = [0, 6, 5, 4, 3, 2, 1] #์ธ๋ฑ์Šค

    same = set(lottos) & set(win_nums)
    min_price = price.index(len(same))
    
    if min_price == 0 :
        min_price = 6
    
    if 0 in lottos:
        max_price = price.index(len(same)+lottos.count(0))
    else:
        max_price = min_price
    
    return [max_price, min_price]

 

๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด

๋‚˜๋Š” ํ•ฉ์ง‘ํ•ฉ์— ์ง‘์ค‘ํ•˜์—ฌ '๊ฒน์น˜๋Š” ์ˆ˜์˜ ์ˆซ์ž๋ฅผ ์„ธ์–ด์ค€๋‹ค'๋ผ๋Š” ๊ฐœ๋…์— ์ง‘์ค‘ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ข‹์•„์š”๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐ›์€ ํ’€์ด๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ๋‘๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ '๋น„๊ต'๋งŒ ํ•ด์„œ, lottos์— ์žˆ๋Š” ์ˆ˜๊ฐ€ win_nums์— ์žˆ๋Š”๊ฐ€? ๋ฅผ ์‚ดํŽด๋ณด๋ฉด์„œ answer์— +1 ์”ฉ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ๋‚˜์ฒ˜๋Ÿผ lottos๊ฐ€ ์ „๋ถ€ 0์ธ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๊ณผ์ •์ด ์—†์–ด๋„ ๋˜์–ด ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๊ฐ„๊ฒฐํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋‘๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋น„๊ตํ•ด์„œ answer ์„ ๊ตฌํ•ด ์ตœ์ € ์ˆœ์œ„๋ฅผ ๊ตฌํ•˜๊ณ , 0์„ ์„ธ์–ด์„œ ๋”ํ•ด์ฃผ๋ฉด์„œ ์ตœ๊ณ  ์ˆœ์œ„๋ฅผ ๊ตฌํ–ˆ๋‹ค. 

์•„๋ฌด๋ž˜๋„ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ณ , ๊น”๋”ํ•˜๊ฒŒ ์งœ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ๋Š” ์ง€์†์ ์ธ ๋ฌธ์ œํ’€์ด์™€ ์—ฐ์Šต์ด ํ•„์š”ํ•  ๊ฒƒ๊ฐ™๋‹ค ใ… ใ… 

def solution(lottos, win_nums):

    rank=[6,6,5,4,3,2,1]

    cnt_0 = lottos.count(0)
    ans = 0
    for x in win_nums:
        if x in lottos:
            ans += 1
    return rank[cnt_0 + ans],rank[ans]

 

 

๋ฐ˜์‘ํ˜•