๐Ÿ“–Problem

๐Ÿ”Intuition

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ํ†ตํ•ด์„œ ๋ฌธ์ œ์—์„œ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด์ž

  1. lose๋ฆฌ์ŠคํŠธ์™€ reserve ๋ฆฌ์ŠคํŠธ์— ๊ณตํ†ต์œผ๋กœ ๋“ค์–ด๊ฐ„ ๋ฒˆํ˜ธ๋Š” ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์„ ๊ฐ€์ ธ์™”๋Š”๋ฐ ๋„๋‚œ์„ ๋‹นํ•œ ๊ฒฝ์šฐ์ด๋‹ค. ์ฆ‰, ๋„๋‚œ์€ ๋‹นํ–ˆ์ง€๋งŒ ๋‚จ์€ ์ฒด์œก๋ณต์ด 1๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์—…์—๋Š” ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์ฒด์œก๋ณต์€ ๋นŒ๋ ค์ค„ ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ lost ์™€ list ์—์„œ ๋ชจ๋‘ ์ง€์›Œ์ค˜์•ผ ํ•œ๋‹ค.
  2. n๋ฒˆ์˜ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ์•ˆ ๊ฐ€์ ธ์™”๋‹ค๋ฉด, n-1์ด๋‚˜ n+1๋ฒˆ ํ•™์ƒํ•œํ…Œ๋งŒ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๋‹ค.
  3. ์œ„ ๊ณผ์ •์„ ๊ฑฐ์ณค๋‹ค๋ฉด lost์™€ reserve๋Š” index์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๊ฒŒ ๋œ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-05-13 แ„‹แ…ฉแ„’แ…ฎ 8.58.05.png

๐Ÿ”Approach

<aside> ๐Ÿ’ก ๋‹น๋ฉดํ•œ ๋ฌธ์ œ์ 

</aside>

for๋ฌธ ์•ˆ์—์„œ remove๋ฅผ ํ•˜๋‹ˆ๊นŒ remove๋ฅผ ํ•œ ์‹œ์ ์—์„œ ๋ฐ˜๋ณต์ด ์ข…๋ฃŒ๋œ๋‹ค.

def solution(n, lost, reserve):
    answer = 0
    
    # ์ค‘๋ณต๋˜๋Š” ๊ฐ’ ์ œ๊ฑฐ
    for l in lost:
        for r in reserve:
            if l == r:
                lost.remove(l)
                reserve.remove(r)
    print("์—ฌ๊ณผ๋œ lost:", lost)
    print("์—ฌ๊ณผ๋œ reserve:", reserve)
    # ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ๋Š”์ง€ ํŒ๋‹จ
    for l in lost:
        for r in reserve:
            if l-1 == r or l+1 == r:
                lost.remove(l)
                reserve.remove(r)
                
                print("l", l, "r", r)
                print("lost", lost, "reserve", reserve)

    answer = n - len(lost)
    return answer

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-05-13 แ„‹แ…ฉแ„’แ…ฎ 9.20.41.png

def solution(n, lost, reserve):
    answer = 0
    temp_lost = lost
    temp_reserve = reserve
    # ์ค‘๋ณต๋˜๋Š” ๊ฐ’ ์ œ๊ฑฐ
    for l in temp_lost:
        for r in temp_reserve:
            if l == r:
                lost.remove(l)
                reserve.remove(r)
            elif l-1 == r or l+1 == r:
                lost.remove(l)
                reserve.remove(r)
                
                print("l", l, "r", r)
                print("lost", lost, "reserve", reserve)

    answer = n - len(lost)
    return answer

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