코드 카타에 사용할 이미지

 

 

오랜만에 못풀진 않을듯 ? 하는 문제가 나왔다.

 

문제의 포인트는 2가지로 설명할 수 있다.

 

1. 소문자 알파벳으로 이루어진 문자열 s가 , index 의 int만큼 밀려서 다음 알파벳으로 출력됨

=> 이는 아스키 코드 의 문제와 같은 부류이고,

 

2. skip 내에 있는 알파벳은 기본적으로 건너 뛰게 된다.

=> 이 부분이 해당 문제의 난이도를 올리는 부분이다.

 

우선, 아스키 코드 대신 저번처럼 알파벳 문자열과 index를 사용하기로 했다.

 

소문자만 존재하므로, 

 

전체 소문자 문자열을 arr에 할당해주고,

(왜 변수명을 arr로 했지?)

 

반복문을 통해 arr배열.. 아 아니라 문자열에서 s[i] 에 해당하는 알파벳의 인덱스를 뽑아오면, 

s와 동일한 값을 우선 추출할 수 있다.

s.length 만큼 반복시 s와 동일한 값이 나오게 됨

 

문제는  skip 부분인데, 문자열 arr 을 만들면서 생각이 난게 있다. 

skip에 해당하는 알파벳을 다 없애버리면 그게 skip이 아닐까?

 

skip 에 해당하는 알파벳은 조건없이 항상 건너 뛰게 되므로, 사실상 없는것과 같다.

 

 

프로그래머스 치고,  상당히 친절한 조건까지 붙어있다.

 

 

 

반복문과 replace 메서드 를 이용해 하나하나 날려주기로 했다.

뭔가 한번에 날릴 방법이 없을까 생각했지만, 찾아내진 못했다.

 

skip 에 해당하는 문자가 도려내졌다. 

 

이제, 위의 방법에서 주어진 index만큼을 더해서 반환하면 된...

 

 

 

당연히 안된다

 

z 이후를 참조하려 하면 undefined 이기 때문이다  

 

 

arr.length 만큼 나눠서, 나머지에 해당하는 부분으로 적용하면,

arr.length 이하인 경우에 대해서는 기존처럼 작동하고,

넘어가면 자연스럽게 0부터 시작하는 형태가 완성된다.

 

 

+ Recent posts