알파벳 소문자로만 이루어진 단어 S가 주어진다.
각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를,
포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.
baekjoon
1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
이전에 사용했던 아스키 코드를 활용해서 문제를 풀었다.
소문자 a~z 는 아스키 코드로 97~122 이다.
그리고 이번에는 배열 내장함수를 많이 활용해서 풀어보았다.arr.fill(-1) //배열을 -1로 채운다. arr.join(' ') //배열의 값들을 ' '기준으로 띄워서 문자열을 만든다. //split의 반대되는 개념 arr.map((value, index) => {}) //map은 자주 사용했기 때문에 패스~
const input = require('fs').readFileSync('/dev/stdin').toString().trim();
let arr = new Array(26);
arr.fill(-1);
input.split('').map((value, index) => {
const ascii = value.charCodeAt(0) - 97;
arr[ascii] === -1 ? (arr[ascii] = index) : null;
});
let ans = arr.join(' ');
console.log(ans);
[배열 내장함수]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array