์ฝํ
์ค๋น
ํ๋ก๊ทธ๋๋จธ์ค. ์์ด ๋๋ง์๊ธฐ (Level-2) - ํ์ด์ฌ
์๋๋ค
2023. 1. 19. 11:50
https://school.programmers.co.kr/learn/courses/30/lessons/12981
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
import math
def solution(n, words):
answer = [0,0]
stack = []
for i in range(len(words)):
if not len(stack): #์คํ์ด ๋น์ด์์ผ๋ฉด
stack.append(words[i])
continue
if (stack[-1][-1] != words[i][0]) or words[i] in stack : #์ ๋จ์ด์ ๋ง์ง๋ง ๊ธ์์ ๋ค์ ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ๋ค๋ฅด๋ฉด ๋๋ ์ด๋ฏธ ๋งํ ๋จ์ด๋ฅผ ๋งํ์ ๊ฒฝ์ฐ
return [i%n+1,math.ceil((i+1)/n)]
else : #๊ฐ์ผ๋ฉด
stack.append(words[i])
#๋ฌธ์ ์์ด ์ฑ๊ณตํ์ ๊ฒฝ์ฐ๋ 0,0 ๋ฆฌํด
return [0,0]
๋ฌธ์ ๋ฅผ ๋ณด์๋ง์ ์คํ์ ๋ง๋ค์ด์ ์คํ์ ๋ง์ง๋ง ์์์ ๋ง์ง๋ง ๊ธ์์ ๋จ์ด์ ์ฒซ ๋ฒ์งธ ๊ธ์๋ฅผ ๋น๊ตํด์ฃผ๋ฉด ๋๊ฒ ๋ค..๋ผ๊ณ ์๊ฐํด์ ํ์๋ค. ์ ๋ต์ด๊ธด ํ๋
def solution(n, words):
for i in range(1, len(words)):
if words[i][0] != words[i-1][-1] or words[i] in words[:i] :
return [(i%n)+1, (i//n)+1]
else:
return [0,0]
์ด๊ฒ ๋ค๋ฅธ ์ฌ๋๋ค ํ์ด์ธ๋ฐ... ๋ ์ ๊ตณ์ด ์คํ์ ๋ง๋ค์ด์คฌ์ง? ๊ทธ๋ฅ word์์ฒด์์ idx-1๊ณผ idx๋ฅผ ๋น๊ตํด์ฃผ๋ฉด ๋๋ค
์ฝ๋๋ ์ง์ง ๊ฐ๋ ์ฑ ์ข๊ณ ํจ์ฌ ๊ฐ๋จํ๋ค