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

๐Ÿ“š Algorithm/Programmers

Progammers ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - [์ฒด์œก๋ณต] Python ํŒŒ์ด์ฌ ํ’€์ด

 

๐Ÿ“ ๋ฌธ์ œ

 

๐Ÿšซ ์ œํ•œ ์‚ฌํ•ญ

 

โœ๏ธ ์ž…์ถœ๋ ฅ

 

๐Ÿ’ก ํ’€์ด

 

๋ฌธ์ œ ์กฐ๊ฑด์—์„œ '์—ฌ๋ฒŒ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์˜จ ํ•™์ƒ์ด ๋„๋‚œ๋‹นํ–ˆ์„ ์ˆ˜ ์žˆ๋‹ค' ๋ผ๊ณ  ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— lost์™€ reserve์—์„œ ์ค‘๋ณต๋˜๋Š” ๊ฒƒ๋“ค์€ ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค. 

์ฒ˜์Œ์—๋Š” ๊ทธ๋ƒฅ for๋ฌธ์—์„œ ์ค‘๋ณต ์—ฌ๋ถ€๋งŒ ๋”ฐ์ ธ remove๋ฅผ ์‚ฌ์šฉํ•ด ์ œ๊ฑฐํ–ˆ๋‹ค. ์ œ์ถœํ•˜๋‹ˆ 90%๋งŒ ๋งž๊ณ  ์ผ๋ถ€ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์—๋Š” ์‹คํŒจ๊ฐ€ ๋‚˜์™”๋‹ค. 

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ฐฐ์—ด์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด ์‚ญ์ œํ•˜์ง€ ์•Š์„ ๋ฒˆํ˜ธ๋“ค๋งŒ ๋„ฃ์–ด ๋ฐฐ์—ด์„ ๋‹ค์‹œ ๊ฐฑ์‹ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

๋‚˜๋Š” new_lost๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด reserve์— ์—†๋Š” ๋ฒˆํ˜ธ๋“ค์€ ์ƒˆ ๋ฐฐ์—ด์— ์ €์žฅํ–ˆ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ์ž์‹ ์„ ๊ธฐ์ค€์œผ๋กœ i-1, i+1์„ ํ™•์ธํ•ด ์ฒด์œก๋ณต์„ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋ฉด lost์—์„œ ํ•ด๋‹น ๋ฒˆํ˜ธ๋ฅผ ์ง€์› ๋‹ค. 

 

def solution(n, lost, reserve):
    answer = 0
    lost.sort()
    reserve.sort()
    
    # ๋ฐฐ์—ด์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด ์‚ญ์ œํ•˜์ง€ ์•Š์„ ๋ฒˆํ˜ธ๋“ค๋งŒ ๋„ฃ์–ด ๋ฐฐ์—ด์„ ๋‹ค์‹œ ๊ฐฑ์‹ 
    new_lost = []
    for x in lost:
        if x in reserve:    
            reserve.remove(x)
        else:
            new_lost.append(x)
    lost = new_lost

	
    # ์ž์‹ ์„ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ ์นœ๊ตฌ์—๊ฒŒ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ
    for i in reserve :
        if (i-1) in lost : 
            lost.remove(i-1)

        elif (i+1) in lost :
            lost.remove(i+1)

    answer = n - len(lost)
    return answer

 

 

 

728x90