https://www.acmicpc.net/problem/10809
const fs = require("fs");
const file = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(file).toString().split("");
let stringArr = ["a", "b", "c", "d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
for (let i = 0; i < stringArr.length; i++) {
for (let j = 0; j < input.length; j++) {
if (input[j] === stringArr[i]) {
stringArr[i] = j;
}
}
}
for (let k = 0; k < stringArr.length; k++) {
if (typeof stringArr[k] === "string") stringArr[k] = -1;
}
console.log(stringArr.join(" "));
stringArr(알파벳 문자가 들어있는 배열)에 input배열의 요소와 같은 것을 찾아 내고, 찾은 요소를 input의 인덱스 값으로 변경 시켜준다.문자타입이므로, 문자타입만을 골라 요소의 값을 -1로 변경한다.join()메서드를 사용해서 배열을 문자로 변경하여 출력한다map()을 이용해 배열의 요소를 변경할려고 했는데 배열의 요소들이 undefined가 나와서 for문으로 변경했다.else문안에 input[i] != stringArr[j]일때의 경우에 -1을 넣으려고 하니, 출력되는 배열의 모든 요소가 -1이 되어 새로운 for문을 돌려 -1값을 배열에 넣어줬다.이번 문제는 검색하지 않고 내가 문제를 보고 구상하고 문제를 풀어서 뿌듯하다 ㅎㅎㅎ
String.fromCharCode()를 이용하게 되면 인자로 들어온 숫자를 아스키코드가 가지고 있는 문자열로 변환해주는데 input에 indexOf를 이용해 input안에 들어온 아스키코드의 값이 들어있는지 체크한다.index0f()메서드를 이용해 배열에 indexOf()메서드 인자의 값이 없으면 -1을 반환하게 되는데 그 값을 새로운 배열에 넣어준다.charCodeAt()String.formCharCode()