일기

(JavaScript) 둘만의 암호

Realuda72 2024. 12. 12. 19:39

https://school.programmers.co.kr/learn/courses/30/lessons/155652

 

char를 그대로 int로 쓸 수 있는 c++과는 다르게 자바스크립트에서는 String.prototype.charCodeAt(index) 함수를 사용해서 문자를 숫자로 바꿔야 한다. charCodeAt함수는 문자열의 index 위치에 있는 문자를 UTF-16코드 단위 값을 표현하는 0~65535 사이의 정수로 바꿔준다.

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt

 

String.prototype.charCodeAt() - JavaScript | MDN

String 값의 charCodeAt() 메서드는 주어진 인덱스의 UTF-16 코드 단위를 표현하는 0과 65535 사이의 정수를 반환합니다.

developer.mozilla.org

반대로 UTF-16코드 유닛을 문자로 바꿔주려면 String.fromCharCode() 함수를 사용하면 된다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

 

String.fromCharCode() - JavaScript | MDN

String.fromCharCode() 메서드는 UTF-16 코드 유닛의 시퀀스로부터 문자열을 생성해 반환합니다.

developer.mozilla.org

 

s의 각 문자를 UTF-16 코드로 바꾸고, 그 값에 1씩 더하는 작업을 index번 반복한다.

만약 변환한 값이 skip에 포함된다면 한번 더 반복한다.

변환한 값을 answer에 추가한다.

function solution(s, skip, index) {
    var answer = '';
    const z = "z".charCodeAt(0);
    for(e of s){
        var c = e.charCodeAt(0);
        for(i = 0; i < index; i++){
            c++;
            if(c > z) c -= 26;
            if(skip.includes(String.fromCharCode(c))){
                i--;
            }
        }
        answer += String.fromCharCode(c);
    }
    
    return answer;
}

 

'일기' 카테고리의 다른 글

(JavaScript) 햄버거 만들기  (0) 2024.12.13
OSI 2계층 : 데이터 링크 계층  (0) 2024.12.12
OSI 1계층 : 물리 계층  (0) 2024.12.11
(JavaScript) 대충 만든 자판  (0) 2024.12.11
OSI 모델  (0) 2024.12.10