๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] ์˜์–ด ๋๋ง์ž‡๊ธฐ - Summer/Winter Coding(~2018)

๋ฟŒ์•ผ._. 2021. 1. 12. 20:40

<์˜์–ด ๋๋ง์ž‡๊ธฐ>

๋ฌธ์ œ(์ถœ์ฒ˜: https://school.programmers.co.kr/learn/courses/30/lessons/12981)

 

 

๋ฌธ์ œ ํ’€์ด

  -my solution

def solution(n, words):
    answer = []

    temp=words[0][-1] #์ฒซ๋ฒˆ์งธ ๋‹จ์–ด์˜ ๋ ๋ฌธ์ž
    
    for i in range(1,len(words)):
        forward=words[i][0] #๋‹ค์Œ ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž
        tempwords=words[0:i+1] #์ค‘๋ณต ํ™•์ธ์„ ์œ„ํ•ด list์— ์ €์žฅ
        if(tempwords.count(words[i])>1): #์ค‘๋ณต์ด ์žˆ๋‹ค๋ฉด 
            answer.append(i%n+1) #๋ฒˆํ˜ธ
            answer.append(i//n+1) #์ฐจ๋ก€
            break
        if(forward!=temp): #์ฒซ ๋ฌธ์ž์™€ ๋ ๋ฌธ์ž๊ฐ€ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด 
            answer.append(i%n+1) #๋ฒˆํ˜ธ
            answer.append(i//n+1) #์ฐจ๋ก€
            break
        temp=words[i][-1] #๋ ๋ฌธ์ž๋ฅผ ํ˜„์žฌ ๋‹จ์–ด์˜ ๋ ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์คŒ
        
    if(len(answer)==0): #list์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด ํƒˆ๋ฝ์ž ์—†์Œ
        answer.append(0)
        answer.append(0)
    return answer

  ์ฒ˜์Œ์— ์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ• ๊นŒ๋ด ์กฐ๋งˆ์กฐ๋งˆํ•˜์˜€๋‹ค. ๋‹คํ–‰ํžˆ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ , 

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค 3๋ฌธ์ œ์—์„œ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. ์˜ˆ์™ธ ์ƒํ™ฉ์ด ์–ด๋–ค ๊ฒƒ์ด ์กด์žฌํ•˜๋Š”์ง€ ์‚ดํŽด๋ณธ ๊ฒฐ๊ณผ ์ค‘๋ณต ๋‹จ์–ด๋ฅผ

ํ™•์ธํ•  ๋•Œ ์ž์‹ ์˜ ์ˆœ์„œ ์•ž์—์„œ ๋งํ•œ ๊ฒƒ๋“ค๊ณผ ๋น„๊ตํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ „์ฒด list์— ๋Œ€ํ•ด ์ค‘๋ณต์„ ํŒ๋ณ„ํ•˜์—ฌ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” 

๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•˜์—ฌ ์˜ˆ์™ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋‹ˆ ๋ฌธ์ œ๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 1) list ๋งจ ์ฒ˜์Œ ๋‹จ์–ด์˜ ๋ ๋ฌธ์ž๋งŒ ์ €์žฅ

 2) list ์ˆœํšŒ (๋‘๋ฒˆ์งธ ๋‹จ์–ด๋ถ€ํ„ฐ)

     2-1) ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๋ฅผ ์ €์žฅ

     2-2) ๋‹จ์–ด์˜ ์ค‘๋ณต ํ™•์ธ์„ ์œ„ํ•ด ํ˜„์žฌ ์ธ๋ฑ์Šค๊นŒ์ง€์˜ ๋ฌธ์ž๋“ค๋งŒ ๋”ฐ๋กœ list์— ์ €์žฅํ•˜์—ฌ

           ์ค‘๋ณต ํŒ๋ณ„ -> ์ค‘๋ณต์ด ์žˆ๋‹ค๋ฉด ๋ฒˆํ˜ธ์™€ ์ฐจ๋ก€๋ฅผ answer list์— ์ถ”๊ฐ€ํ•œ ํ›„ ์ค‘์ง€

     2-3) ์ฒซ ๋ฌธ์ž์™€ ๋ ๋ฌธ์ž๊ฐ€ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด -> ํƒˆ๋ฝ์ž ๋ฐœ์ƒ(๋ฒˆํ˜ธ, ์ฐจ๋ก€ answer list์— ์ถ”๊ฐ€ ํ›„ ์ค‘์ง€)

     2-4) ํ˜„์žฌ ์ธ๋ฑ์Šค์˜ ๋‹จ์–ด์˜ ๋ ๋ฌธ์ž์™€ ๋‹ค์Œ ๋‹จ์–ด์˜ ์ฒซ ๋ฌธ์ž๋ฅผ ๋น„๊ต ์œ„ํ•ด ํ˜„์žฌ ์ธ๋ฑ์Šค ๋‹จ์–ด์˜ ๋ ๋ฌธ์ž ์ €์žฅ

 3) answer list์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด -> ํƒˆ๋ฝ์ž๊ฐ€ ์—†์Œ (0,0์„ answer list์— ์ถ”๊ฐ€)


์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges