๋ฌธ์ ์ค๋ช
ํด๋ํฐ์ ์ํ์ ์ปดํจํฐ ํค๋ณด๋ ์ํ๊ณผ๋ ๋ค๋ฅด๊ฒ ํ๋์ ํค์ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๊ฐ ํ ๋น๋ ์ ์์ต๋๋ค. ํค ํ๋์ ์ฌ๋ฌ ๋ฌธ์๊ฐ ํ ๋น๋ ๊ฒฝ์ฐ, ๋์ผํ ํค๋ฅผ ์ฐ์ํด์ ๋น ๋ฅด๊ฒ ๋๋ฅด๋ฉด ํ ๋น๋ ์์๋๋ก ๋ฌธ์๊ฐ ๋ฐ๋๋๋ค.
์๋ฅผ ๋ค์ด, 1๋ฒ ํค์ "A", "B", "C" ์์๋๋ก ๋ฌธ์๊ฐ ํ ๋น๋์ด ์๋ค๋ฉด 1๋ฒ ํค๋ฅผ ํ ๋ฒ ๋๋ฅด๋ฉด "A", ๋ ๋ฒ ๋๋ฅด๋ฉด "B", ์ธ ๋ฒ ๋๋ฅด๋ฉด "C"๊ฐ ๋๋ ์์ ๋๋ค.
๊ฐ์ ๊ท์น์ ์ ์ฉํด ์๋ฌด๋ ๊ฒ๋ ๋ง๋ ํด๋ํฐ ์ํ์ด ์์ต๋๋ค. ์ด ํด๋ํฐ ์ํ์ ํค์ ๊ฐ์๊ฐ 1๊ฐ๋ถํฐ ์ต๋ 100๊ฐ๊น์ง ์์ ์ ์์ผ๋ฉฐ, ํน์ ํค๋ฅผ ๋๋ ์ ๋ ์ ๋ ฅ๋๋ ๋ฌธ์๋ค๋ ๋ฌด์์๋ก ๋ฐฐ์ด๋์ด ์์ต๋๋ค. ๋, ๊ฐ์ ๋ฌธ์๊ฐ ์ํ ์ ์ฒด์ ์ฌ๋ฌ ๋ฒ ํ ๋น๋ ๊ฒฝ์ฐ๋ ์๊ณ , ํค ํ๋์ ๊ฐ์ ๋ฌธ์๊ฐ ์ฌ๋ฌ ๋ฒ ํ ๋น๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ฌ์ง์ด ์์ ํ ๋น๋์ง ์์ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ช๋ช ๋ฌธ์์ด์ ์์ฑํ ์ ์์ ์๋ ์์ต๋๋ค.
์ด ํด๋ํฐ ์ํ์ ์ด์ฉํด ํน์ ๋ฌธ์์ด์ ์์ฑํ ๋, ํค๋ฅผ ์ต์ ๋ช ๋ฒ ๋๋ฌ์ผ ๊ทธ ๋ฌธ์์ด์ ์์ฑํ ์ ์๋์ง ์์๋ณด๊ณ ์ ํฉ๋๋ค.
1๋ฒ ํค๋ถํฐ ์ฐจ๋ก๋๋ก ํ ๋น๋ ๋ฌธ์๋ค์ด ์์๋๋ก ๋ด๊ธด ๋ฌธ์์ด๋ฐฐ์ด keymap๊ณผ ์ ๋ ฅํ๋ ค๋ ๋ฌธ์์ด๋ค์ด ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด targets๊ฐ ์ฃผ์ด์ง ๋, ๊ฐ ๋ฌธ์์ด์ ์์ฑํ๊ธฐ ์ํด ํค๋ฅผ ์ต์ ๋ช ๋ฒ์ฉ ๋๋ฌ์ผ ํ๋์ง ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๋จ, ๋ชฉํ ๋ฌธ์์ด์ ์์ฑํ ์ ์์ ๋๋ -1์ ์ ์ฅํฉ๋๋ค.
์ ํ ์ฌํญ
- 1 ≤ keymap์ ๊ธธ์ด ≤ 100
- 1 ≤ keymap์ ์์์ ๊ธธ์ด ≤ 100
- keymap[i]๋ i + 1๋ฒ ํค๋ฅผ ๋๋ ์ ๋ ์์๋๋ก ๋ฐ๋๋ ๋ฌธ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด keymap[0] = "ABACD" ์ธ ๊ฒฝ์ฐ 1๋ฒ ํค๋ฅผ ํ ๋ฒ ๋๋ฅด๋ฉด A, ๋ ๋ฒ ๋๋ฅด๋ฉด B, ์ธ ๋ฒ ๋๋ฅด๋ฉด A ๊ฐ ๋ฉ๋๋ค.
- keymap์ ์์์ ๊ธธ์ด๋ ์๋ก ๋ค๋ฅผ ์ ์์ต๋๋ค.
- keymap์ ์์๋ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- 1 ≤ targets์ ๊ธธ์ด ≤ 100
- 1 ≤ targets์ ์์์ ๊ธธ์ด ≤ 100
- targets์ ์์๋ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
keymap | targets | result |
["ABACD", "BCEFD"] | ["ABCD","AABB"] | [9, 4] |
["AA"] | ["B"] | [-1] |
["AGZ", "BSSS"] | ["ASA","BGZ"] | [4, 6] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- "ABCD"์ ๊ฒฝ์ฐ,
- 1๋ฒ ํค ํ ๋ฒ → A
- 2๋ฒ ํค ํ ๋ฒ → B
- 2๋ฒ ํค ๋ ๋ฒ → C
- 1๋ฒ ํค ๋ค์ฏ ๋ฒ → D
- ๋ฐ๋ผ์ ์ดํฉ์ธ 9๋ฅผ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค์ ์ ์ฅํฉ๋๋ค.
- "AABB"์ ๊ฒฝ์ฐ,
- 1๋ฒ ํค ํ ๋ฒ → A
- 1๋ฒ ํค ํ ๋ฒ → A
- 2๋ฒ ํค ํ ๋ฒ → B
- 2๋ฒ ํค ํ ๋ฒ → B
- ๋ฐ๋ผ์ ์ดํฉ์ธ 4๋ฅผ ๋ ๋ฒ์งธ ์ธ๋ฑ์ค์ ์ ์ฅํฉ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก [9,4]๋ฅผ return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- "B"์ ๊ฒฝ์ฐ, 'B'๊ฐ ์ด๋์๋ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ -1์ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค์ ์ ์ฅํฉ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก [-1]์ return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- "ASA"์ ๊ฒฝ์ฐ,
- 1๋ฒ ํค ํ ๋ฒ → A
- 2๋ฒ ํค ๋ ๋ฒ → S
- 1๋ฒ ํค ํ ๋ฒ → A
- ๋ฐ๋ผ์ ์ดํฉ์ธ 4๋ฅผ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค์ ์ ์ฅํฉ๋๋ค.
- "BGZ"์ ๊ฒฝ์ฐ,
- 2๋ฒ ํค ํ ๋ฒ → B
- 1๋ฒ ํค ๋ ๋ฒ → G
- 1๋ฒ ํค ์ธ ๋ฒ → Z
- ๋ฐ๋ผ์ ์ดํฉ์ธ 6์ ๋ ๋ฒ์งธ ์ธ๋ฑ์ค์ ์ ์ฅํฉ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก [4, 6]์ return ํฉ๋๋ค.
ํ์ด
- 1๋ ๋ฒจ ๊ตฌํ ๋ฌธ์
def solution(keymap, targets):
answer = []
keymap_redesign = {}
for k in keymap:
k = list(k)
for i in range(len(k)):
try:
if keymap_redesign[k[i]] > i+1:
keymap_redesign[k[i]] = i+1
except:
keymap_redesign[k[i]] = i+1
for t in targets:
t = list(t)
_tmp = 0
is_fail = False
for tt in t:
try:
_tmp += keymap_redesign[tt]
except:
is_fail = True
break
if is_fail == False:
answer.append(_tmp)
else:
answer.append(-1)
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.08ms, 10.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.07ms, 10.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.06ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.09ms, 10.1MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.07ms, 10.4MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.10ms, 10.3MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.12ms, 10.1MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.13ms, 10MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.05ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.11ms, 10.3MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.01ms, 10.3MB)
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ๋คํธ์ํฌ - ๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS) (0) | 2023.02.24 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ํผ์์ ํ๋ ํฑํํ (2) | 2023.02.24 |
ํ๋ก๊ทธ๋๋จธ์ค ์๊ถ๋ํ (ํฌ๊ธฐ) (0) | 2023.02.23 |
ํ๋ก๊ทธ๋๋จธ์ค [3์ฐจ] ํ์ผ๋ช ์ ๋ฆฌ (1) | 2023.02.23 |
์ฝ๋ฉํ ์คํธ ์ ์ ์ผ๊ฐํ (0) | 2023.02.23 |