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

Developer/๐ŸŸ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/python] - ์˜์–ด ๋๋ง์ž‡๊ธฐ

๋ฌธ์ œ ์„ค๋ช…

1๋ถ€ํ„ฐ n๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด์žˆ๋Š” n๋ช…์˜ ์‚ฌ๋žŒ์ด ์˜์–ด ๋๋ง์ž‡๊ธฐ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜์–ด ๋๋ง์ž‡๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

 

  1. 1๋ฒˆ๋ถ€ํ„ฐ ๋ฒˆํ˜ธ ์ˆœ์„œ๋Œ€๋กœ ํ•œ ์‚ฌ๋žŒ์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ๋‹จ์–ด๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.
  2. ๋งˆ์ง€๋ง‰ ์‚ฌ๋žŒ์ด ๋‹จ์–ด๋ฅผ ๋งํ•œ ๋‹ค์Œ์—๋Š” ๋‹ค์‹œ 1๋ฒˆ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  3. ์•ž์‚ฌ๋žŒ์ด ๋งํ•œ ๋‹จ์–ด์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ์–ด๋ฅผ ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  4. ์ด์ „์— ๋“ฑ์žฅํ–ˆ๋˜ ๋‹จ์–ด๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  5. ํ•œ ๊ธ€์ž์ธ ๋‹จ์–ด๋Š” ์ธ์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

๋‹ค์Œ์€ 3๋ช…์ด ๋๋ง์ž‡๊ธฐ๋ฅผ ํ•˜๋Š” ์ƒํ™ฉ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 

tank → kick → know → wheel → land → dream → mother → robot → tank

์œ„ ๋๋ง์ž‡๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

  • 1๋ฒˆ ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ์ฒซ ๋ฒˆ์งธ ์ฐจ๋ก€์— tank๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • 2๋ฒˆ ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ์ฒซ ๋ฒˆ์งธ ์ฐจ๋ก€์— kick์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • 3๋ฒˆ ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ์ฒซ ๋ฒˆ์งธ ์ฐจ๋ก€์— know๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • 1๋ฒˆ ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ๋‘ ๋ฒˆ์งธ ์ฐจ๋ก€์— wheel์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • (๊ณ„์† ์ง„ํ–‰)

๋๋ง์ž‡๊ธฐ๋ฅผ ๊ณ„์† ์ง„ํ–‰ํ•ด ๋‚˜๊ฐ€๋‹ค ๋ณด๋ฉด, 3๋ฒˆ ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ์„ธ ๋ฒˆ์งธ ์ฐจ๋ก€์— ๋งํ•œ tank ๋ผ๋Š” ๋‹จ์–ด๋Š” ์ด์ „์— ๋“ฑ์žฅํ–ˆ๋˜ ๋‹จ์–ด์ด๋ฏ€๋กœ ํƒˆ๋ฝํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์‚ฌ๋žŒ์˜ ์ˆ˜ n๊ณผ ์‚ฌ๋žŒ๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ๋งํ•œ ๋‹จ์–ด words ๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ€์žฅ ๋จผ์ € ํƒˆ๋ฝํ•˜๋Š” ์‚ฌ๋žŒ์˜ ๋ฒˆํ˜ธ์™€ ๊ทธ ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ๋ช‡ ๋ฒˆ์งธ ์ฐจ๋ก€์— ํƒˆ๋ฝํ•˜๋Š”์ง€๋ฅผ ๊ตฌํ•ด์„œ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 


ํ’€์ด

 

def solution(n, words):
    x = 0
    b = 0
    a = 0
    bf = [words[0]]
    
    for i in range(len(words)-1):
        if words[i][len(words[i])-1] != words[i+1][0]:
            x = i + 1
            break

        if words[i+1] in bf:
            x = i + 1
            break
        
        else : bf.append(words[i+1])

    if x == 0 : return [b,a]
    
    x += 1
    
    a = int(x / n)
    b = x % n
    
    if b == 0 :
        b = n
    else :
        a += 1
        
    return [b,a]