7_3 - syh39/ProblemSolving GitHub Wiki

์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด

์ถœ์ฒ˜: https://school.programmers.co.kr/learn/courses/30/lessons/81301

๋‚œ์ด๋„ : 1

ํ’€์ด์—ฌ๋ถ€ : Y

์œ ํ˜• : 2021 ์นด์นด์˜ค ์ฑ„์šฉ์—ฐ๊ณ„ํ˜• ์ธํ„ด์‹ญ

ํ’€์ด ๋ฐฉ๋ฒ•

def solution(s):
    return int(s.replace("zero", "0").replace("one", "1").replace("two", "2").replace("three","3").replace("four","4").replace("five","5").replace("six","6").replace("seven","7").replace("eight","8").replace("nine","9"))

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด ๋ฐฉ๋ฒ•:

num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}

def solution(s):
    answer = s
    for key, value in num_dic.items():
        answer = answer.replace(key, value)
    return int(answer)

๊ฒฐ๋ก 

์ด๋Ÿฐ ๋ฌธ์ œ๋งŒ ๋‚˜์˜ค๋ฉด ์ข‹๊ฒ ๋‹ค

๋‚ด์ 

์ถœ์ฒ˜: https://school.programmers.co.kr/learn/courses/30/lessons/81301

๋‚œ์ด๋„ : 1

ํ’€์ด์—ฌ๋ถ€ : Y

์œ ํ˜• : ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1

ํ’€์ด ๋ฐฉ๋ฒ•

def solution(a, b):
    answer = 0
    for i in range(0, len(a)):
        answer += a[i]*b[i]
    return answer

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด ๋ฐฉ๋ฒ•:

def solution(a, b):
    return sum([x*y for x, y in zip(a,b)])

๊ฒฐ๋ก 

zip()์ด ๋งŽ์ด ์“ฐ์ด๋Š”๊ตฌ๋‚˜

์ฒด์œก๋ณต

์ถœ์ฒ˜: https://school.programmers.co.kr/learn/courses/30/lessons/42862

๋‚œ์ด๋„ : 1

ํ’€์ด์—ฌ๋ถ€ : Y

์œ ํ˜• : ํƒ์š•๋ฒ•(Greedy)

ํ’€์ด ๋ฐฉ๋ฒ•

def solution(n, lost, reserve):
    for i in reserve:
        if i in lost:
            reserve.remove(i)
            lost.remove(i) # reserve ๊ธฐ์ค€ ์ค‘๋ณต๊ฐ’ ์ œ๊ฑฐ
    for i in lost:
        if i in reserve:
            reserve.remove(i)
            lost.remove(i) # lost ๊ธฐ์ค€ ์ค‘๋ณต๊ฐ’ ์ œ๊ฑฐ
    
    reserve.sort() # reserve ์ •๋ ฌ
    lost.sort() # lost ์ •๋ ฌ
    
    for i in reserve:
        if i - 1 in lost:
            lost.remove(i - 1) # ์•ž์‚ฌ๋žŒ ๋จผ์ € ์ฐพ๊ธฐ
        elif i + 1 in lost:
            lost.remove(i + 1) # ๋’ค์‚ฌ๋žŒ ์ฐพ๊ธฐ
    return n - len(lost)

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด ๋ฐฉ๋ฒ•:

def solution(n, lost, reserve):
    _reserve = [r for r in reserve if r not in lost]
    _lost = [l for l in lost if l not in reserve]
    for r in _reserve:
        f = r - 1
        b = r + 1
        if f in _lost:
            _lost.remove(f)
        elif b in _lost:
            _lost.remove(b)
    return n - len(_lost)

๊ฒฐ๋ก 

sort() ์•ˆํ•ด์„œ ์‚ฝ์งˆํ•˜๊ณ  reserve, lost ๊ธฐ์ค€์œผ๋กœ ๋‘๊ฐœ ๋‹ค ์ค‘๋ณต๊ฐ’ ์•ˆ ๋นผ์ค˜์„œ ์‚ฝ์งˆํ–ˆ๋‹ค. ๋‘๊ฐœ ๋‹ค ๊ฒ€์ƒ‰ํ•ด์„œ ์•Œ์•„๋ƒˆ๋Š”๋ฐ ๋” ๊ผผ๊ผผํ•˜๊ฒŒ ๋ฐ˜๋ก€๋ฅผ ์ฐพ๋Š” ์Šต๊ด€์„ ๊ธธ๋Ÿฌ์•ผ๊ฒ ๋‹ค.