오랜만에 못풀진 않을듯 ? 하는 문제가 나왔다.
문제의 포인트는 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부터 시작하는 형태가 완성된다.
'알고리즘 풀이' 카테고리의 다른 글
Javascript - 바탕화면 정리 [Level: 1] (0) | 2024.09.20 |
---|---|
Javascript - 성격 유형 검사하기 [Level: 1] (0) | 2024.09.19 |
Javascript - 햄버거 만들기 [Level: 1] (1) | 2024.09.13 |
Javascript - 대충만든 자판 [Level: 1] (0) | 2024.09.11 |
Javascript - 숫자 짝꿍 [Level: 1] (0) | 2024.09.03 |