본문 바로가기

코딩 테스트/Lv.1

[프로그래머스] 둘만의 암호 with Kotlin

문제

문자열 s가 주어졌을 때, s의 각각의 문자를 index만큼 증가시켜주는 문제

만일 사이에 skip 문자가 포함되어있다면 건너뛰고 증가

 

s가 "abc" 이고 index가 1이라면 "bcd" 이며, 만일 skip : "d" 라면 d를 건너뛴 "bce"

 

풀이 방법

1. 아스키코드 이용

2. inc() 메서드를 이용

 

저는 1번으로 풀었습니다.

 

코드

class Solution {
    fun solution(s: String, skip: String, index: Int): String {
        var answer = ""
        // a : 97 z : 122  .toChar()
        
        for(i in s){
            var asc = i.toInt()
            var count = 0
            
            while(count < index){
                asc += 1  // 'a'.inc() 로도 증가시킬 수 있음 // 'a'.inc() == 'b'
                if(asc > 122) asc = 97
                
                if(!skip.contains(asc.toChar())){
                    count++
                }
            }
            answer += asc.toChar()
        }
        
        return answer
    }
}