백준 10809번 문제풀이(node)

2022. 2. 11. 11:51에러&&공부노트

글쓴 개요 : 백준 10809번 문제를 푸는 과정 중에 알게된 내용을 소개하고자 작성했습니다.

 

해당 문제는 아스키코드를 참고할 필요가 있었습니다.

ASCII (American standard code for information interchange code)

미국 표준 정보교환 코드로 컴퓨터 내부에서 문자를 표현하는데 사용됩니다.
번호 코드 번호 코드 번호 코드
33 ! 64 @ 95 _
34 " 65 A 96 `
35 # 66 B 97 a
36 $ 67 C 98 b
37 % 68 D 99 c
38 & 69 E 100 d
39 ' 70 F 101 e
40 ( 71 G 102 f
41 ) 72 H 103 g
42 * 73 I 104 h
43 + 74 J 105 i
44 , 75 K 106 j
45 - 76 L 107 k
46 . 77 M 108 l
47 / 78 N 109 m
48 0 79 O 110 n
49 1 80 P 111 o
50 2 81 Q 112 p
51 3 82 R 113 q
52 4 83 S 114 r
53 5 84 T 115 s
54 6 85 U 116 t
55 7 86 V 117 u
56 8 87 W 118 v
57 9 88 X 119 w
58 : 89 Y 120 x
59 ; 90 Z 121 y
60 < 91 [ 122  z
61 = 92 \ 123 {
62 > 93 ] 124 |
63 ? 94 ^ 125 }

문제 : 

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.

만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.

//예제 입력 1
baekjoon

//예제 출력 1
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

 

풀이 :

const fs = require('fs');
const input = fs.readFileSync(0).toString().trim();
const fn_result = (input) => {
  const _string = input;
  let char_array = [];
  let i = 0;
  let j = 0;
  let result = "";
  do {
    // char_array.push(String.fromCharCode(i + 65)); // 대문자 배열
    char_array.push(String.fromCharCode(i + 97)); // 소문자 배열
    i++;
  } while (i < 26);
  do {
    [..._string].indexOf(char_array[j]) > -1 ? (result += [..._string].indexOf(char_array[j]) + " ") : (result += "-1 ");
    j++;
  } while (j < char_array.length);
  console.log(result);
};
fn_result(input);

 

 

'에러&&공부노트' 카테고리의 다른 글

백준 1152번 풀이 node  (0) 2022.02.11
백준 1157 풀이 node  (0) 2022.02.11
한수 개수 구하기  (0) 2022.02.10
셀프 넘버 구하기  (0) 2022.02.10
CORS 에러  (0) 2022.02.07