λ¬Έμ
1λΆν° nκΉμ§ λ²νΈκ° λΆμ΄μλ nλͺ μ μ¬λμ΄ μμ΄ λλ§μκΈ°λ₯Ό νκ³ μμ΅λλ€. μμ΄ λλ§μκΈ°λ λ€μκ³Ό κ°μ κ·μΉμΌλ‘ μ§νλ©λλ€.
- 1λ²λΆν° λ²νΈ μμλλ‘ ν μ¬λμ© μ°¨λ‘λλ‘ λ¨μ΄λ₯Ό λ§ν©λλ€.
- λ§μ§λ§ μ¬λμ΄ λ¨μ΄λ₯Ό λ§ν λ€μμλ λ€μ 1λ²λΆν° μμν©λλ€.
- μμ¬λμ΄ λ§ν λ¨μ΄μ λ§μ§λ§ λ¬Έμλ‘ μμνλ λ¨μ΄λ₯Ό λ§ν΄μΌ ν©λλ€.
- μ΄μ μ λ±μ₯νλ λ¨μ΄λ μ¬μ©ν μ μμ΅λλ€.
- ν κΈμμΈ λ¨μ΄λ μΈμ λμ§ μμ΅λλ€.
λ€μμ 3λͺ μ΄ λλ§μκΈ°λ₯Ό νλ μν©μ λνλ λλ€.
tank → kick → know → wheel → land → dream → mother → robot → tank
μ λλ§μκΈ°λ λ€μκ³Ό κ°μ΄ μ§νλ©λλ€.
- 1λ² μ¬λμ΄ μμ μ 첫 λ²μ§Έ μ°¨λ‘μ tankλ₯Ό λ§ν©λλ€.
- 2λ² μ¬λμ΄ μμ μ 첫 λ²μ§Έ μ°¨λ‘μ kickμ λ§ν©λλ€.
- 3λ² μ¬λμ΄ μμ μ 첫 λ²μ§Έ μ°¨λ‘μ knowλ₯Ό λ§ν©λλ€.
- 1λ² μ¬λμ΄ μμ μ λ λ²μ§Έ μ°¨λ‘μ wheelμ λ§ν©λλ€.
- (κ³μ μ§ν)
λλ§μκΈ°λ₯Ό κ³μ μ§νν΄ λκ°λ€ 보면, 3λ² μ¬λμ΄ μμ μ μΈ λ²μ§Έ μ°¨λ‘μ λ§ν tank λΌλ λ¨μ΄λ μ΄μ μ λ±μ₯νλ λ¨μ΄μ΄λ―λ‘ νλ½νκ² λ©λλ€.
μ¬λμ μ nκ³Ό μ¬λλ€μ΄ μμλλ‘ λ§ν λ¨μ΄ words κ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, κ°μ₯ λ¨Όμ νλ½νλ μ¬λμ λ²νΈμ κ·Έ μ¬λμ΄ μμ μ λͺ λ²μ§Έ μ°¨λ‘μ νλ½νλμ§λ₯Ό ꡬν΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ ν μ¬ν
- λλ§μκΈ°μ μ°Έμ¬νλ μ¬λμ μ nμ 2 μ΄μ 10 μ΄νμ μμ°μμ λλ€.
- wordsλ λλ§μκΈ°μ μ¬μ©ν λ¨μ΄λ€μ΄ μμλλ‘ λ€μ΄μλ λ°°μ΄μ΄λ©°, κΈΈμ΄λ n μ΄μ 100 μ΄νμ λλ€.
- λ¨μ΄μ κΈΈμ΄λ 2 μ΄μ 50 μ΄νμ λλ€.
- λͺ¨λ λ¨μ΄λ μνλ²³ μλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- λλ§μκΈ°μ μ¬μ©λλ λ¨μ΄μ λ»(μλ―Έ)μ μ κ²½ μ°μ§ μμΌμ λ λ©λλ€.
- μ λ΅μ [ λ²νΈ, μ°¨λ‘ ] ννλ‘ return ν΄μ£ΌμΈμ.
- λ§μ½ μ£Όμ΄μ§ λ¨μ΄λ€λ‘ νλ½μκ° μκΈ°μ§ μλλ€λ©΄, [0, 0]μ return ν΄μ£ΌμΈμ.
λμ μ½λ
def solution(n, words):
stack = []
fail = 0
# stackμ μμλλ‘ λ£μΌλ©΄μ νλ½ μ‘°κ±΄μ λ§μλ¨μ΄μ§λ©΄ fail μΈμμ μ¦κ°μν€κ³ λ°λ³΅λ¬Έμ μ’
λ£νλ€.
# 쑰건 1. stack[-2][-1] != word[0] μΌ λ νλ½μ λ°μ
# 쑰건 2. κ°μ λ¨μ΄κ° μμ λ νλ½μ λ°μ
for word in words:
stack.append(word)
if len(stack) > 1:
if stack[-2][-1] != word[0]:
fail += 1
break
if stack.count(word) > 1:
fail += 1
break
# νλ½μκ° μμΌλ©΄ [0,0] λ°ν
if fail == 0:
return [0,0]
else:
# stackμ κΈΈμ΄κ° nμΌλ‘ λλμ΄ λ¨μ΄μ§ λ
if len(stack) % n == 0:
return [n,len(stack)//n]
# stackμ κΈΈμ΄κ° nμΌλ‘ λλμ΄ λ¨μ΄μ§μ§ μμ λ
else:
return [len(stack)%n,(len(stack)//n)+1]
'Algorithm > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Programmers] λ€μ ν° μ«μ (0) | 2022.05.01 |
---|---|
[Programmers] μ κ· μμ΄λ μΆμ² (0) | 2022.05.01 |
[Programmers] μμ λ§λ€κΈ° (0) | 2022.04.30 |
[Programmers] νν (0) | 2022.04.30 |
[Programmers] ν¬λ μΈ μΈνλ½κΈ° κ²μ (0) | 2022.04.30 |