블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형
문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다
문제
풀이
전체 풀이
const solution = (input) => {
const en = [...Array(26).keys()].map((_) => -1);
input.split('').forEach((c, idx) => {
const cIdx = c.charCodeAt(0) - 97;
if (en[cIdx] === -1) {
en[cIdx] = idx;
}
});
return en.join(' ');
};
const print = (input) => console.log(solution(input + ''));
process.stdin.on('data', print);
상세 설명
알파벳 개수 길이(a~z, 26개)의 배열을 생성하여 배열의 index0을 a로, index25를 z 라고 한다.
const en = [...Array(26).keys()].map((_) => -1);
입력값의 각 문자를 아스키코드로 변환하여 97을 빼면 a = 0, b = 1, ... 이된다.
배열에 입력값의 문자의 index 값을 저장한다.
input.split('').forEach((c, idx) => {
const cIdx = c.charCodeAt(0) - 97;
if (en[cIdx] === -1) {
en[cIdx] = idx;
}
});
그리고, 답을 출력한다.
전체 코드
https://github.com/bluemiv/Algorithm/blob/master/baekjoon/nodejs/src/ex10/ex10809.js
풀이 결과
관련 글
2022.07.21 - [Algorithm/Beakjoon] - jest 단위테스트를 이용하여 백준 알고리즘 문제 편하게 풀기
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
백준 1157번 / 단어 공부 (nodejs 알고리즘 풀이) (0) | 2022.08.21 |
---|---|
백준 11720번 / 숫자의 합 (nodejs 알고리즘 풀이) (0) | 2022.08.19 |
백준 1065번 / 한수 (nodejs 알고리즘 풀이) (0) | 2022.08.16 |
백준 4673번 / 셀프 넘버 (nodejs 알고리즘 풀이) (0) | 2022.08.15 |
백준 4344번 / 평균은 넘겠지 (nodejs 알고리즘 풀이) (0) | 2022.08.14 |