๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿค– ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

#ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํŒŒ์ด์ฌ Lv.1 #์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜

๋ฌธ์ œ์„ค๋ช…
: ๋‹จ ํ•œ ๋ช…์˜ ์„ ์ˆ˜๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ์„ ์ˆ˜๊ฐ€ ๋งˆ๋ผํ†ค์„ ์™„์ฃผ.
๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด participant์™€ ์™„์ฃผํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด completion์ด ์ฃผ์–ด์งˆ ๋•Œ,
์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑ

๋ฌธ์ œํ’€์ด

  1.  ์ฐธ์—ฌ ์„ ์ˆ˜๋“ค์˜ ๋ฐฐ์—ด๊ณผ ์™„์ฃผ ์„ ์ˆ˜๋“ค์˜ ๋ฐฐ์—ด์„ ์ •๋ ฌ
  2.  ๋‘ ๋ฐฐ์—ด์„ ๋น„๊ตํ•˜๊ณ  ๊ฐ’์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์ฐธ์—ฌ ์„ ์ˆ˜์˜ ๊ฐ’์„ ๋ฆฌํ„ด
def solution(participant, completion):
    participant.sort()
    completion.sort()
    
    answer = participant[-1]
    for i in range(len(completion)):
        if participant[i] != completion[i]:
            answer = participant[i]
            break
    return answer

 

# ๋‹ค๋ฅธ์‚ฌ๋žŒ ์ฝ”๋“œ

์œ ์‚ฌํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ธ zip์œผ๋กœ ๋ฌถ์€ ์ฝ”๋“œ

zip : ๋ฐฐ์—ด์„ ๊ฐ™์€ ์ธ๋ฑ์Šค๋ผ๋ฆฌ ์ง์ง€์–ด์ค€๋‹ค. ๋งŒ์•ฝ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ๊ฐ™์€ ์ธ๋ฑ์Šค๋ผ๋ฆฌ๋งŒ ์ง์ง€์–ด์ฃผ๊ณ , zip ๊ฐ์ฒด์—์„œ ๋‚˜๋จธ์ง€ ์ธ๋ฑ์Šค๋Š” ์ œ์™ธ๋œ๋‹ค.
def solution(participant, completion):
    participant.sort()
    completion.sort()
    for p,c in zip(participant, completion):
        if p != c:
            return p
    return participant.pop()

# ๋‹ค๋ฅธ์‚ฌ๋žŒ ์ฝ”๋“œ

- collections์— ๋‚ด์žฅ๋œ ํ•จ์ˆ˜์ธ Counter()๋Š” Dic๊ณผ ๊ฐ™์ด hashํ˜• ์ž๋ฃŒ๋“ค์˜ ๊ฐ’์˜ ๊ฐœ์ˆ˜๋ฅผ ์…€ ๋•Œ ์‚ฌ์šฉ 
- Dic์ฒ˜๋Ÿผ {key:value} ํ˜•์‹์œผ๋กœ ๋งŒ๋“ค์–ด์ง 
- Counter() ๊ฐ์ฒด๋ผ๋ฆฌ ๋นผ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ
- 0 (zero) ๋‚˜ ์Œ์ˆ˜ (minus)์˜ ๊ฐ’๋“ค๋„ ๊ฐ€๋Šฅ
- ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ์—†๋”๋ผ๋„ error๊ฐ€ ์•„๋‹Œ 0์„ ๋ฐ˜ํ™˜
import collections
def solution(participant, completion):
    answer = collections.Counter(participant) - collections.Counter(completion)
    return list(answer.keys())[0]

-> counter๋กœ ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ๋ฅผ ๊ฐ๊ฐ ์„ธ์„œ ์›์†Œ๋“ค์„ key๋กœ, ๋“ฑ์žฅํ•˜๋Š” ๊ฐœ์ˆ˜๋ฅผ value๋กœ ํ•˜์—ฌ dictionary๋ฅผ ๋งŒ๋“ค์–ด ๋นผ์ฃผ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ–ˆ์ง€๋งŒ ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜๋ฅผ key ๊ฐ’์œผ๋กœ ๋ฆฌํ„ด

 

 

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

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜

์ˆ˜๋งŽ์€ ๋งˆ๋ผํ†ค ์„ ์ˆ˜๋“ค์ด ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ ํ•œ ๋ช…์˜ ์„ ์ˆ˜๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ์„ ์ˆ˜๊ฐ€ ๋งˆ๋ผํ†ค์„ ์™„์ฃผํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด participant์™€ ์™„์ฃผํ•œ ์„ ์ˆ˜

programmers.co.kr