๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Tried. Failed. Logged.
๐Ÿ“š๊ณต๋ถ€/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ฒด์œก๋ณต, ํŒŒ์ด์ฌ

by Janger 2021. 11. 16.
728x90

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

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ฒด์œก๋ณต

์ ์‹ฌ์‹œ๊ฐ„์— ๋„๋‘‘์ด ๋“ค์–ด, ์ผ๋ถ€ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์ด ์žˆ๋Š” ํ•™์ƒ์ด ์ด๋“ค์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๋Š” ์ฒด๊ฒฉ ์ˆœ์œผ๋กœ ๋งค๊ฒจ์ ธ ์žˆ์–ด, ๋ฐ”๋กœ ์•ž๋ฒˆ

programmers.co.kr

def solution(n, lost, reserve):
    
    answer = 0
    
        
    # ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์ด ํ•™์ƒ์€ ์ฒด์œก๋ณต์„ ํ•˜๋‚˜๋งŒ ๋„๋‚œ๋‹นํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉฐ, ๋‚จ์€ ์ฒด์œก๋ณต์ด ํ•˜๋‚˜์ด๊ธฐ์— ๋‹ค๋ฅธ ํ•™์ƒ์—๊ฒŒ๋Š” ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    lostTmp = list( set(lost) - set(reserve) )
    reserveTmp = list( set(reserve) - set(lost) )
    

    lost = lostTmp
    reserve = reserveTmp
    
    
    for res in reserve:

        if res-1 in lost:
            
            lost.remove(res-1)
        
        elif res+1 in lost:

            lost.remove(res+1)
            
    answer = n - len(lost)
    

    return answer

 

๋งŽ์€ ๊ฒƒ์„ ์ƒ๊ฐํ•˜๊ฒŒ ํ•ด ์ค€ ๋ฌธ์ œ์ž„

 

์šฐ์„  ์ฒซ ๋ฒˆ์งธ๋กœ ๊ธ€์€ ๋‹ค ์ฝ์–ด ๋ด์•ผ ํ•  ๊ฒƒ. 

๋ฌธ์ œ ์ค‘ ๋งˆ์ง€๋ง‰์ฏค์— "์—ฌ๋ฒŒ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋Š”" ์ด๋Ÿฐ ํ•จ์ • ์กฐ๊ฑด์ด ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฅผ ์ฝ์ง€ ๋ชปํ•˜๊ณ  ๋ฐ”๋กœ ๋ฌธ์ œ ํ‘ธ๋Š” ๊ฒƒ์—๋งŒ ์ง‘๋…์„ ํ–ˆ๋‹ค.. 

 

๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ์ „์— ์ตœ๋Œ€ํ•œ ๋ฌธ์ œ์˜ ์กฐ๊ฑด๋“ค์„ ๋‹ค ํŒŒ์•…ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ , ํ‘ธ๋Š” ์ค‘์—๋„ ๋ญ”๊ฐ€ ์•ˆ ํ’€๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋ฉด ๋‹ค์‹œ ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. 

 

๋‘ ๋ฒˆ์งธ๋กœ๋Š” ๋ณ€์ˆ˜ ๋ช…๋„ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์„ ์–ธ ํ•ด์ฃผ๋Š” ๊ฒƒ. 

for๋ฌธ์„ ์“ธ ๋•Œ ์ž๊พธ i ํ˜น์€ j ๊ฐ™์€ ๋ณ€์ˆ˜๋ช…๋งŒ ์“ฐ๋Š” ๊ฒƒ์„ ๊ณ ์ง‘ํ•ด ์™”๋Š”๋ฐ, ๋ฌธ์ œ๋ฅผ ํ‘ผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ๋Œ€๋ถ€๋ถ„์ด ์•Œ๊ธฐ ์‰ฌ์šด ๋ณ€์ˆ˜๋ช…์„ ์“ด ๊ฒƒ์„ ๋ณด์•˜๋‹ค. 

ex) reserve -> res, lost -> los

ํ™•์‹คํžˆ ๋ณ€์ˆ˜ ๋ช…์„ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ๋” ์„ ์–ธ์„ ํ•ด์ฃผ๋‹ˆ๊น ๋จธ๋ฆฌ๊ฐ€ ๋œ ์•„ํ”„๋‹ค. 

 

์„ธ ๋ฒˆ์งธ๋Š” ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์— ๋Œ€ํ•ด์„œ ๋งŽ์€ ๊ฒƒ์„ ์•Œ์•„๊ฐ”๋‹ค๋Š” ๊ฒƒ. 

์ฒ˜์Œ์—๋Š” reserve๋ฅผ ์ฐธ์กฐํ•˜๋Š” for๋ฌธ์—์„œ reserve.remove() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์”ฉ ์ œ๊ฑฐํ•˜๋Š”๋ฐ ๋ญ”๊ฐ€ ์ž˜ ์ž‘๋™์„ ํ•˜์ง€ ์•Š์•˜๋‹ค. 

์ด์— ๋Œ€ํ•ด์„œ ๊ตฌ๊ธ€๋ง์„ ์ข€ ํ•ด๋ณด๋‹ˆ๊น for๋ฌธ์ด ๋Œ๊ณ  ์žˆ์„ ๋•Œ์—  ์ฐธ์กฐํ•˜๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ์ด ๋˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค๋Š” ๊ธ€์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

https://devpouch.tistory.com/110

 

[python] list๋กœ for๋ฌธ ๋Œ๋ฉด์„œ removeํ• ๋•Œ ์ฃผ์˜ํ• ์ 

์›๋ž˜ ๋ฆฌ์ŠคํŠธ๋ฅผ for ๋ฌธ์„ ๋Œ๋ฉด์„œ ์›์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋˜์ง€ ์•Š์•˜๋‹ค. ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค. ๋ฆฌ์ŠคํŠธ๋ฅผ ๋Œ๋ฉด์„œ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ• ๋•Œ >>> l = [1, 2, 3, 4, 5] >>> >>> for i in l: ... print(i).

devpouch.tistory.com

์•„๋ฌดํŠผ ์ด์™ธ์—๋„ ์ง‘ํ•ฉ์„ ๋‹ค๋ฃจ๋Š” ํ•จ์ˆ˜์ธ set() ํ•จ์ˆ˜๋„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค๋Š” ๋“ฑ ํŒŒ์ด์ฌ์— ๋Œ€ํ•ด์„œ ๋งŽ์€ ๊ฒฝํ—˜์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉฐ ๋‚˜์ค‘์—๋„ ๋งŽ์€ ๋„์›€์ด ๋  ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. 

 

๋งˆ์ง€๋ง‰์œผ๋กœ๋Š” ๊ฒฝํ—˜์ด ๋งŽ์œผ๋ฉด ๋ฌด์กฐ๊ฑด ์ข‹์„ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. 

์ง€๊ธˆ๊นŒ์ง€ ๋งŽ์€ ๊ฒƒ์„ ์•Œ๊ฒŒ ํ•ด์ค€ ๊ฒƒ์ด ๋‹ค ์ด๋Ÿฐ ๊ฒฝํ—˜ ๋•๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. 

 

์ฝ”ํ…Œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์„ ๋งŽ์ด ํ•˜๋ฉด์€ ํ™•์‹คํžˆ ์ข‹์€ ์ด์ต์ด ์ƒ๊ธธ ์ˆ˜๋ฐ–์— ์—†๋‹ค. 

 

 

 

 

728x90