๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐˜ผ๐™ก๐™œ๐™ค๐™ง๐™ž๐™ฉ๐™๐™ข/๐™‹๐™ง๐™ค๐™œ๐™ง๐™–๐™ข๐™ข๐™š๐™ง๐™จ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 'ํ• ์ธ ํ–‰์‚ฌ' ํŒŒ์ด์ฌ ํ’€์ด

by beomcoder 2023. 3. 1.
728x90
๋ฐ˜์‘ํ˜•
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

"""
XYZ ๋งˆํŠธ๋Š” ์ผ์ •ํ•œ ๊ธˆ์•ก์„ ์ง€๋ถˆํ•˜๋ฉด 10์ผ ๋™์•ˆ ํšŒ์› ์ž๊ฒฉ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. 
XYZ ๋งˆํŠธ์—์„œ๋Š” ํšŒ์›์„ ๋Œ€์ƒ์œผ๋กœ ๋งค์ผ ํ•œ ๊ฐ€์ง€ ์ œํ’ˆ์„ ํ• ์ธํ•˜๋Š” ํ–‰์‚ฌ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.
ํ• ์ธํ•˜๋Š” ์ œํ’ˆ์€ ํ•˜๋ฃจ์— ํ•˜๋‚˜์”ฉ๋งŒ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
์•Œ๋œฐํ•œ ์ •ํ˜„์ด๋Š” ์ž์‹ ์ด ์›ํ•˜๋Š” ์ œํ’ˆ๊ณผ ์ˆ˜๋Ÿ‰์ด ํ• ์ธํ•˜๋Š” ๋‚ ์งœ์™€ 
10์ผ ์—ฐ์†์œผ๋กœ ์ผ์น˜ํ•  ๊ฒฝ์šฐ์— ๋งž์ถฐ์„œ ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.

(์ค‘๋žต)

์ •ํ˜„์ด๊ฐ€ ์›ํ•˜๋Š” ์ œํ’ˆ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด want์™€ 
์ •ํ˜„์ด๊ฐ€ ์›ํ•˜๋Š” ์ œํ’ˆ์˜ ์ˆ˜๋Ÿ‰์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด number, 
XYZ ๋งˆํŠธ์—์„œ ํ• ์ธํ•˜๋Š” ์ œํ’ˆ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด discount๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, 
ํšŒ์›๋“ฑ๋ก์‹œ ์ •ํ˜„์ด๊ฐ€ ์›ํ•˜๋Š” ์ œํ’ˆ์„ ๋ชจ๋‘ ํ• ์ธ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” 
ํšŒ์›๋“ฑ๋ก ๋‚ ์งœ์˜ ์ด ์ผ์ˆ˜๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์‹œ์˜ค.
๊ฐ€๋Šฅํ•œ ๋‚ ์ด ์—†์œผ๋ฉด 0์„ return ํ•ฉ๋‹ˆ๋‹ค.
"""

def solution(want, number, discount):
    answer, wants = 0, []
    
    for v, n in zip(want, number):
        wants += [v]*n
        
    wants = sorted(wants)
    for i in range(len(discount[:-len(wants)+1])):
        answer += int(wants == sorted(discount[i:len(wants)+i]))
            
    return answer


"""
ํ• ์ธ์ •๋ณด์—์„œ ๋’ค๋กœ ์›ํ•˜๋Š”์ œํ’ˆ๋“ค์ด ์ „๋ถ€ ์žˆ์œผ๋ฉด 1์”ฉ ๋”ํ•ด์ฃผ๋ ค๊ณ  ํ–ˆ๋‹ค.

- 21~22 line
์›ํ•˜๋Š” ์ œํ’ˆ์„ [์ œํ’ˆ๋ช…, ๊ฐฏ์ˆ˜] ์—์„œ [์ œํ’ˆ๋ช…,์ œํ’ˆ๋ช…,..]์œผ๋กœ ๋ฐ”๊พธ๋ ค๊ณ  ํ–ˆ๋‹ค.
๊ฐœ์ˆ˜ ๋”ฐ๋กœ ์ œํ’ˆ ๋”ฐ๋กœ๋ฉด ๋กœ์ง์ด ๋” ์–ด๋ ค์šธ ๊ฒƒ ๊ฐ™์•„์„œ ๊ทธ๋žฌ๋‹ค.

- 24 line
sort๋ฅผ ๊ฐ๊ฐ ํ•ด์ค˜์•ผ ๋งค๋ฒˆ ์–ด๋””์— ๋ญ๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ์ง€ ์•Š๊ณ  ํ†ต์œผ๋กœ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค.

- 25 line
ํ• ์ธ์ •๋ณด์—์„œ ์ญ‰ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ œํ’ˆ๋“ค์ด ์žˆ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ์ œํ’ˆ๊ธธ์ด๋งŒํผ ๋œ ๊ฒ€์‚ฌํ•ด๋„ ๋œ๋‹ค.
์–ด์ฐจํ”ผ discount[len(wants)+1:] ๋ถ€ํ„ฐ๋Š” ๋’ค๋กœ ๊ฒ€์‚ฌํ•ด๋ด์•ผ ์ œํ’ˆ๊ฐฏ์ˆ˜ ์ž์ฒด๊ฐ€ ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
ex) want:['a','a','a'] / discount:['a','a','a','a']๋ผ๋ฉด 
    discount[2]๋ถ€ํ„ฐ ๊ฒ€์‚ฌํ•ด๋ด์•ผ ์›ํ•˜๋Š” ๊ฐœ์ˆ˜๋Š” 3๊ฐœ์ธ๋ฐ ๊ฒ€์‚ฌํ•  ๊ธธ์ด๋Š” 2๊ฐœ๋ฐ–์— ์—†๋‹ค.

- 26 line
์›ํ•˜๋Š” ์ œํ’ˆ๊ณผ ํ• ์ธ์ •๋ณด๋ฅผ ๋น„๊ตํ•˜๋ฉด true, false๋กœ ๋‚˜์˜ค๋Š”๋ฐ intํ˜•์œผ๋กœ ๋ฐ”๊พธ๋ฉด 1, 0์ด๋‹ค.
๊ทธ๋ž˜์„œ ๊ทธ ๊ฐ’์„ answer์— ๋”ํ•˜๋ฉด ๋œ๋‹ค.
"""
728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€