λ¬Έμ μ€λͺ
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 ν΄μ£ΌμΈμ.
μ μΆλ ₯ μ
n | words | result |
3 | ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] | [3,3] |
5 | ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] | [0,0] |
2 | ["hello", "one", "even", "never", "now", "world", "draw"] | [1,3] |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
3λͺ μ μ¬λμ΄ λλ§μκΈ°μ μ°Έμ¬νκ³ μμ΅λλ€.
- 1λ² μ¬λ : tank, wheel, mother
- 2λ² μ¬λ : kick, land, robot
- 3λ² μ¬λ : know, dream, tank
μ κ°μ μμλ‘ λ§μ νκ² λλ©°, 3λ² μ¬λμ΄ μμ μ μΈ λ²μ§Έ μ°¨λ‘μ λ§ν tankλΌλ λ¨μ΄κ° 1λ² μ¬λμ΄ μμ μ 첫 λ²μ§Έ μ°¨λ‘μ λ§ν tankμ κ°μΌλ―λ‘ 3λ² μ¬λμ΄ μμ μ μΈ λ²μ§Έ μ°¨λ‘λ‘ λ§μ ν λ μ²μ νλ½μκ° λμ€κ² λ©λλ€.
μ μΆλ ₯ μ #2
5λͺ μ μ¬λμ΄ λλ§μκΈ°μ μ°Έμ¬νκ³ μμ΅λλ€.
- 1λ² μ¬λ : hello, recognize, gather
- 2λ² μ¬λ : observe, encourage, refer
- 3λ² μ¬λ : effect, ensure, reference
- 4λ² μ¬λ : take, establish, estimate
- 5λ² μ¬λ : either, hang, executive
μ κ°μ μμλ‘ λ§μ νκ² λλ©°, μ΄ κ²½μ°λ μ£Όμ΄μ§ λ¨μ΄λ‘λ§μΌλ‘λ νλ½μκ° λ°μνμ§ μμ΅λλ€. λ°λΌμ [0, 0]μ returnνλ©΄ λ©λλ€.
μ μΆλ ₯ μ #3
2λͺ μ μ¬λμ΄ λλ§μκΈ°μ μ°Έμ¬νκ³ μμ΅λλ€.
- 1λ² μ¬λ : hello, even, now, draw
- 2λ² μ¬λ : one, never, world
μ κ°μ μμλ‘ λ§μ νκ² λλ©°, 1λ² μ¬λμ΄ μμ μ μΈ λ²μ§Έ μ°¨λ‘μ 'r'λ‘ μμνλ λ¨μ΄ λμ , nμΌλ‘ μμνλ nowλ₯Ό λ§νκΈ° λλ¬Έμ μ΄λ μ²μ νλ½μκ° λμ€κ² λ©λλ€.
νμ΄ μ½λ
def solution(n, words):
answer = [0, 0]
already = set()
for idx, w in enumerate(words):
num = idx % n + 1
if w in already:
answer[0] = num
answer[1] = idx // n + 1
break
else:
if idx == 0:
already.add(w)
elif idx != 0 and words[idx-1][-1] == w[0]:
already.add(w)
else:
answer[0] = num
answer[1] = idx // n + 1
break
return answer
λ¨μ ꡬνλ¬Έμ μ΄λ€.
μ¬μ©λ μλ£κ΅¬μ‘°λ‘λ setμ μ¬μ©νλλ°, νμ΄μ¬μμ setμ ν΄μ ν μ΄λΈλ‘ λ§λ€μ΄μ‘μΌλ©°, setμμμ in μ°μ°μ μκ° λ³΅μ‘λλ O(1)μ΄λ€.
λ°λΌμ μ΄λ―Έ λμ¨ λ¨μ΄μ λνμ¬ μ°Ύλ κ³Όμ μ μκ° λ³΅μ‘λλ₯Ό O(1)λ‘ μ€μΌ μ μλ€λ κ²μ΄λ€.
κ³ λ €ν΄μΌ ν μ μ,
λλ§μκΈ°λ₯Ό μ€ν¨ν κ²½μ°, μ΄λ―Έ λμ¨ λ¨μ΄λ₯Ό λ§ν κ²½μ°
μ΄ λ κ°μ§μ λν΄ κ³ λ €νμ¬ κ΅¬ννλ©΄ μ½κ² ꡬνν μ μλ€.
'π μ½λ©ν μ€νΈ λλΉ : PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] ꡬλͺ λ³΄νΈ (level2, python) (0) | 2022.09.08 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] μ§μ§μ΄ μ κ±°νκΈ° (level2, python) (0) | 2022.09.08 |
[νλ‘κ·Έλλ¨Έμ€] μΉ΄ν« (level2, python) (0) | 2022.09.08 |
[νλ‘κ·Έλλ¨Έμ€] λ€μ ν° μ«μ (level2, python) (0) | 2022.09.08 |
[νλ‘κ·Έλλ¨Έμ€] νΌλ³΄λμΉ μ (level2, python) (0) | 2022.09.08 |