1309. Decrypt String from Alphabet to Integer Mapping

Leekimoon·2022년 6월 2일
0

문제

숫자와 '#'으로 구성된 문자열 s가 제공됩니다. 다음과 같이 s를 영어 소문자에 매핑하려고 합니다.

문자('a' ~ 'i')는 각각 ('1' ~ '9')로 표시됩니다.
문자('j' ~ 'z')는 각각 ('10#' ~ '26#')로 표시됩니다.
매핑 후에 형성된 문자열을 반환합니다.

고유한 매핑이 항상 존재하도록 테스트 케이스가 생성됩니다.

예시

Example 1:

Input: s = "10#11#12"
Output: "jkab"
Explanation: "j" -> "10#" , "k" -> "11#" , "a" -> "1" , "b" -> "2".

Example 2:

Input: s = "1326#"
Output: "acz"

해당 문제는 임의로 지정한 숫자에 알파벳을 매칭시켜 지정한 숫자값들이 들어오면 알파벳으로 변경하는 코드를 작성하는 문제였다.

var freqAlphabets = function(s) {
  let result = ''; // 정답을 넣을 빈 문자열 선언

  //뒤에서 부터 순차 탐색
  for(let i = s.length-1; i>=0 ; i--) {
// #을 만났을때 앞의 두문자열을 변환
    if(s[i] === '#') {
		result = String.fromCharCode(Number(`${s[i-2]}${s[i-1]}`)+96) + result;
		i -= 2;
//이외 상황에서는 하나의 문자열만 변환
    }else {
		result = String.fromCharCode(Number(`${s[i]}`)+96) + result;
    }
  }

  return result;

};
해당 문제는 아스키 코드 97번 부터 알파벳 소문자 a가 시작 되는데 해당 오른쪽 부터 문자열을 탐색해서 '#'이 나올땐 # 앞의 두문자열을 변환하고 #이 나오지 않은경우느 한자리씩 변환을 진행해서 뒤에서 부터 문자열을 채워주는 방식으로 문제를 풀었다.
profile
FrontEnd Developer

2개의 댓글

comment-user-thumbnail
2022년 6월 2일

백틱을 사용해서 간단하게 푸신것 같습니다!!!👍👍

답글 달기
comment-user-thumbnail
2022년 6월 3일

인덱스를 뒤에서부터 접근하는 경우에 조금 더 쉽게 접근할 수 있는 것 같아요👍

답글 달기