Programmers] ๋๋ง์ ์ํธ
๐ ํ์ด์ฌ ์ผ๋ก ํ์ด
๐ ๋ฌธ์ ๋งํฌ :
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์ ์ค๋ช :
๋ ๋ฌธ์์ด s์ skip, ๊ทธ๋ฆฌ๊ณ ์์ฐ์ index๊ฐ ์ฃผ์ด์ง ๋, ๋ค์ ๊ท์น์ ๋ฐ๋ผ ๋ฌธ์์ด์ ๋ง๋ค๋ ค ํฉ๋๋ค. ์ํธ์ ๊ท์น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ฌธ์์ด s์ ๊ฐ ์ํ๋ฒณ์ index๋งํผ ๋ค์ ์ํ๋ฒณ์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค.
- index๋งํผ์ ๋ค์ ์ํ๋ฒณ์ด z๋ฅผ ๋์ด๊ฐ ๊ฒฝ์ฐ ๋ค์ a๋ก ๋์๊ฐ๋๋ค.
- skip์ ์๋ ์ํ๋ฒณ์ ์ ์ธํ๊ณ ๊ฑด๋๋๋๋ค.
์๋ฅผ ๋ค์ด s = "aukks", skip = "wbqd", index = 5์ผ ๋, a์์ 5๋งํผ ๋ค์ ์๋ ์ํ๋ฒณ์ f์ง๋ง [b, c, d, e, f]์์ 'b'์ 'd'๋ skip์ ํฌํจ๋๋ฏ๋ก ์ธ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ 'b', 'd'๋ฅผ ์ ์ธํ๊ณ 'a'์์ 5๋งํผ ๋ค์ ์๋ ์ํ๋ฒณ์ [c, e, f, g, h] ์์์ ์ํด 'h'๊ฐ ๋ฉ๋๋ค. ๋๋จธ์ง "ukks" ๋ํ ์ ๊ท์น๋๋ก ๋ฐ๊พธ๋ฉด "appy"๊ฐ ๋๋ฉฐ ๊ฒฐ๊ณผ๋ "happy"๊ฐ ๋ฉ๋๋ค.
๋ ๋ฌธ์์ด s์ skip, ๊ทธ๋ฆฌ๊ณ ์์ฐ์ index๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์ ๊ท์น๋๋ก s๋ฅผ ๋ณํํ ๊ฒฐ๊ณผ๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ ์ ํ ์ฌํญ
- 5 ≤ s์ ๊ธธ์ด ≤ 50
- 1 ≤ skip์ ๊ธธ์ด ≤ 10
- s์ skip์ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- skip์ ํฌํจ๋๋ ์ํ๋ฒณ์ s์ ํฌํจ๋์ง ์์ต๋๋ค.
- 1 ≤ index ≤ 20
๐ ์ ์ถ๋ ฅ ์
์ถ์ธก)
1. ๊ฐ ์ํ๋ฒณ์ ์ธ๋ฑ์ค ๋ค 5๊ฐ๋ก ๋ณํํ ์ ์๋๋ก ํด์ผํ๋๋ฐ ์ด๊ฑด ์์คํค์ฝ๋๋ฅผ ์ด์ฉํด์ ์ซ์๋ก ๋ฐ๊พธ๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ
2. s์ ์ํ๋ฒณ์ ์ซ์์ ์ธ๋ฑ์ค 5๊ฐ ๋ค์ ์ซ์ ์ฌ์ด์ skip์ด ์ซ์๊ฐ ๋ช๊ฐ๊ฐ ํฌํจ๋๋์ง๋ฅผ ํ๋จํ์ฌ ํฌํจ๋๋ ๊ฐ์ ๋งํผ์ ๋ํจ.
3. skip ๊ฒฝ์ฐ ๊ฐ๊ฐ์ ์ํ๋ฒณ์ ๋ชจ๋ ์์คํค ์ฝ๋ ์ฒ๋ฆฌํด ๋ฐ๋ก ๋ฐฐ์ด๋ก ๋ง๋ค์ด ํ๋จํ ๋ ์ฌ์ฉ.
4. ์ํ๋ฒณ z (122) ์ด๊ณผํ๋ฉด ๊ทธ ์ซ์์์ 96์ ๋นผ๊ณ 26 (์ํ๋ฒณ๊ฐ์)์ผ๋ก ๋๋ด์๋ ๋๋จธ์ง๋ฅผ ๋ค์ 96์ ๋ํด์ค๋ค. (์ด๊ณผ ์ ์ต๋ index 20 + skip๊ธธ์ด 10๋ก 26์ผ๋ก ๋๋๋ ์ฒ๋ฆฌ๋ ํ์)
์์ค์ฝ๋)
* 1์ฐจ) ์คํจ. ๋จ 5์ ๐คฎ
def solution(s, skip, index):
sk = [ ord(one) for one in skip ]
s_origin = [ ord(one) for one in s]
s_plus = [ ord(one) + index for one in s]
cnt = 0
result = ""
sk.sort()
for i in range(len(s_plus)) :
for one in sk :
if s_origin[i] <= one <= s_plus[i]:
cnt += 1
sum = s_plus[i] + cnt
if sum > 122 :
sum = 96 + ((sum - 96) % 26)
result += chr(sum)
cnt = 0
return result
2์ฐจ) ์ฑ๊ณต
def solution(s, skip, index):
alphabet = "abcdefghijklmnopqrstuvwxyz"
result = ""
for i in skip :
alphabet = alphabet.replace(i,'')
for one in s :
result += alphabet[(alphabet.find(one) + index) % len(alphabet)]
return result
๋ฆฌ๋ทฐ)
์ซ์๋ก ํด๋ณผ๋ ค๋ค๊ฐ ์ฐจ๋ผ๋ฆฌ ์ธ๋ฑ์ค๋ก ์ฒ๋ฆฌํ๋ ๊ฒ ๋น ๋ฅผ๊ฑฐ ๊ฐ์์ ๋ณ๊ฒฝ.
์ผ๋จ skip ๋ฌธ์๋ค์ ๋ค ์ฒ์๋ถํฐ ์ง์ฐ๊ณ s์ ์ธ๋ฑ์ค๋ฅผ skip์ ์ง์ด ์ํ๋ฒณ๋ค ์ฌ์ด์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์ ๊ฑฐ๊ธฐ์ 5๋ฅผ ๋ํ ๊ฐ์ ์ฐพ๋๋ค. ์ด๋ skip๋ค์ ์ง์ด ์ํ๋ฒณ ๊ธธ์ด ๋ณด๋ค ๋์ด๊ฐ๋ฉด ๊ธธ์ด ๋งํผ์ ๋๋์ด ์ฒ์์ผ๋ก ๋์๊ฐ ์ ์๊ฒ ์ฒ๋ฆฌํ๋ค.
์คํต์ ๋จผ์ ์ฒ๋ฆฌํ๊ณ 5์ฉ ๋ํ ๊ฐ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ํ์ด!!!