728x90
๋ฐ์ํ
"""
ํด๋ํฐ์ ์ํ์ ์ปดํจํฐ ํค๋ณด๋ ์ํ๊ณผ๋ ๋ค๋ฅด๊ฒ ํ๋์ ํค์ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๊ฐ ํ ๋น๋ ์ ์์ต๋๋ค.
ํค ํ๋์ ์ฌ๋ฌ ๋ฌธ์๊ฐ ํ ๋น๋ ๊ฒฝ์ฐ, ๋์ผํ ํค๋ฅผ ์ฐ์ํด์
๋น ๋ฅด๊ฒ ๋๋ฅด๋ฉด ํ ๋น๋ ์์๋๋ก ๋ฌธ์๊ฐ ๋ฐ๋๋๋ค.
์๋ฅผ ๋ค์ด, 1๋ฒ ํค์ "A", "B", "C" ์์๋๋ก ๋ฌธ์๊ฐ ํ ๋น๋์ด ์๋ค๋ฉด 1๋ฒ ํค๋ฅผ
ํ ๋ฒ ๋๋ฅด๋ฉด "A", ๋ ๋ฒ ๋๋ฅด๋ฉด "B", ์ธ ๋ฒ ๋๋ฅด๋ฉด "C"๊ฐ ๋๋ ์์
๋๋ค.
1๋ฒ ํค๋ถํฐ ์ฐจ๋ก๋๋ก ํ ๋น๋ ๋ฌธ์๋ค์ด ์์๋๋ก ๋ด๊ธด ๋ฌธ์์ด๋ฐฐ์ด keymap๊ณผ
์
๋ ฅํ๋ ค๋ ๋ฌธ์์ด๋ค์ด ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด targets๊ฐ ์ฃผ์ด์ง ๋,
๊ฐ ๋ฌธ์์ด์ ์์ฑํ๊ธฐ ์ํด ํค๋ฅผ ์ต์ ๋ช ๋ฒ์ฉ ๋๋ฌ์ผ ํ๋์ง
์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๋จ, ๋ชฉํ ๋ฌธ์์ด์ ์์ฑํ ์ ์์ ๋๋ -1์ ์ ์ฅํฉ๋๋ค.
"""
def solution(keymap, targets):
answer = []
for target in targets:
count, isTrue = 0, True
for key in target:
min_index = min([101] + [k.find(key)+1 for k in keymap if k.find(key)+1 != 0])
if min_index == 101:
isTrue = False
break
count += min_index
answer.append(count if isTrue else -1)
return answer
"""
keymap์ ํด๋น ์ํ๋ฒณ์ด ์์ผ๋ฉด ๋ฆฌ์คํธ์ ๋ฃ๊ณ ์์ผ๋ฉด ๋ฃ์ง ์์์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ต์๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ธ 101์ด๋ผ๋ฉด keymap์ ์๋ค๋ ๋ป์ด๋ฏ๋ก -1์ ๋ฃ์ด์ฃผ์๋ค.
๋จผ์ targets๋ฆฌ์คํธ์์ target์ ํ๋์ฉ ๊ฐ์ง๊ณ ์ค๊ณ ,
target์ ํค๋ฅผ ๋๋ฅผ ํ์๋ฅผ ์ ์ฅํ count,
keymap์ ์ํ๋ฒณ์ด ์๋์ง ํ์ธํ๋ isTrue๋ณ์๋ฅผ ์ ์ธํ๋ค.
๊ทธ๋ฆฌ๊ณ target์์ ์ํ๋ฒณ ํ๋์ฉ keymap์ ์๋์ง ํ๋จํ๊ธฐ ์ํด for๋ฌธ์ ๋๋ ธ๋ค.
์ํ๋ฒณ์ด ์๋ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ผํ๊ธฐ ๋๋ฌธ์ minํจ์๋ฅผ ์ฌ์ฉํ๊ณ
๋ฆฌ์คํธ ๋ดํฌ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ keymap์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ฃผ์๋ค.
์ฐ์ k.find(key)+1์ findํจ์๋ฅผ ์ฌ์ฉํ์๊ณ find๋ indexํจ์์ ๋น์ทํ๋ค.
findํจ์๋ ๋ฌธ์์ด์์ key๊ฐ์ ์ฐพ์ ์ธ๋ฑ์ค๊ฐ์ ๋ฆฌํดํ๋ ํจ์์ด๊ณ ,
๋ง์ฝ key๊ฐ ์๋ค๋ฉด -1์ ๋ฆฌํดํ๋ค.
๋ดํฌ๊ตฌ๋ฌธ์ ํด์ํ๋ฉด keymap์์ ํ๋์ฉ ๊ฐ์ ๊ฐ์ง๊ณ ์ค๋๋ฐ, k.find(key)+1์ด 0์ด ์๋๋ผ๋ฉด
๋ค์๋งํด keymap์์ ๋ด๊ฐ ์ฐพ์ key๊ฐ ํค๋งต์ ์๋ค๋ฉด ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋ค๋ ๋ป์ด๋ค.
๋ง์ฝ keymap์ ๋ฌธ์์ด ์ ์ฒด์ ํ๋๋ ์๋ค๋ฉด min๊ฐ์ 101์ด ๋๋ค. (ํ๋๋ ์ถ๊ฐํ์ง ์์์ผ๋๊น)
๊ทธ๋ฌ๋ฉด keymap์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ ์์ผ๋ฏ๋ก isTrue๋ฅผ false๋ก ๋ฐ๊ฟ์ค๋ค.
๊ทธ๋์ ์ ๋ต๋ฆฌ์คํธ์ ์ธ๋ฑ์ค๋ฅผ ๋ค ์ฐพ์์์์์ผ๋ฉด count๊ฐ์ ๋ฃ๊ณ ,
์๋๋ผ๋ฉด -1์ ๋ฃ์ด์ ์ฐพ์์ ์๋ค๋ ํ์๋ฅผ ํด์ค๋ค.
"""
728x90
๋ฐ์ํ
'๐ผ๐ก๐๐ค๐ง๐๐ฉ๐๐ข > ๐๐ง๐ค๐๐ง๐๐ข๐ข๐๐ง๐จ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค '์ถ์ต ์ ์' ํ์ด์ฌ ํ์ด (0) | 2023.04.05 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค '์นด๋ ๋ญ์น' ํ์ด์ฌ ํ์ด (0) | 2023.03.15 |
ํ๋ก๊ทธ๋๋จธ์ค '๋ง์น ํ๊ธฐ' ํ์ด์ฌ ํ์ด (0) | 2023.03.05 |
ํ๋ก๊ทธ๋๋จธ์ค '๋ฐํํ๋ฉด ์ ๋ฆฌ' ํ์ด์ฌ ํ์ด (0) | 2023.03.05 |
ํ๋ก๊ทธ๋๋จธ์ค Summer/Winter Coding(~2018) '์คํฌํธ๋ฆฌ' ํ์ด์ฌ ํ์ด (0) | 2023.03.01 |
๋๊ธ