πŸ’»μ½”λ“œμΉ΄νƒ€

MunkiJeonΒ·2024λ…„ 6μ›” 20일

μ½”λ”©ν…ŒμŠ€νŠΈ

λͺ©λ‘ 보기
17/18
post-thumbnail

045.μ‹œμ € μ•”ν˜Έ

/*
문제 μ„€λͺ…
μ–΄λ–€ λ¬Έμž₯의 각 μ•ŒνŒŒλ²³μ„ μΌμ •ν•œ 거리만큼 λ°€μ–΄μ„œ λ‹€λ₯Έ μ•ŒνŒŒλ²³μœΌλ‘œ λ°”κΎΈλŠ” μ•”ν˜Έν™” 방식을 μ‹œμ € μ•”ν˜ΈλΌκ³  ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ "AB"λŠ” 1만큼 λ°€λ©΄ "BC"κ°€ 되고, 3만큼 λ°€λ©΄ "DE"κ°€ λ©λ‹ˆλ‹€. "z"λŠ” 1만큼 λ°€λ©΄ "a"κ°€ λ©λ‹ˆλ‹€. λ¬Έμžμ—΄ s와 거리 n을 μž…λ ₯λ°›μ•„ sλ₯Ό n만큼 λ―Ό μ•”ν˜Έλ¬Έμ„ λ§Œλ“œλŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄ λ³΄μ„Έμš”.

μ œν•œ 쑰건
곡백은 아무리 밀어도 κ³΅λ°±μž…λ‹ˆλ‹€.
sλŠ” μ•ŒνŒŒλ²³ μ†Œλ¬Έμž, λŒ€λ¬Έμž, 곡백으둜만 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
s의 κΈΈμ΄λŠ” 8000μ΄ν•˜μž…λ‹ˆλ‹€.
n은 1 이상, 25μ΄ν•˜μΈ μžμ—°μˆ˜μž…λ‹ˆλ‹€.
*/
class Solution {
    fun solution(s: String, n: Int): String {
        return s.toList().joinToString(separator = "") {
            //separator : μ›μ†Œκ°„ μ—°κ²° μ‹œ μ‚¬μ΄μ˜ λ“€μ–΄κ°ˆ λ¬Έμžμ—΄ ( ""을 μ£Όλ©΄ 곡백없이 μ—°κ²°λœλ‹€.)
            //joinToString = 리슀트의 μ›μ†Œλ“€μ„ λͺ¨λ‘ μ—°κ²°ν•œ ν•˜λ‚˜μ˜ λ¬Έμžμ—΄
            when (it) {
                //ν•œκΈ€μžμ”© λŒ€μ„œ int(μ•„μŠ€ν‚€μ½”λ“œ)κ°’μœΌλ‘œ λ§Œλ“  λ‹€μŒ 처리...
                in 'A'..'Z' -> 
                ('A'.toInt() + (it.toInt() - 'A'.toInt() + n) % ('Z' - 'A' + 1)).toChar()
                in 'a'..'z' -> 
                ('a'.toInt() + (it.toInt() - 'a'.toInt() + n) % ('z' - 'a' + 1)).toChar()
                else -> it
            }.toString()
        }
    }
}
profile
곡μž₯μžλ™ν™”μ™€ μ›Ή κ°œλ°œμ„ ν•₯μ•„ λ¨Ήλ‹€ μ•± 개발둜 μ „ν–₯ν•œ 개발자의 ν‚€λ³΄λ“œμ˜ 낑은 킀캑⛑️

0개의 λŒ“κΈ€