드디어 집에 왔다...
피곤한걸...?
문제 11654번
https://www.acmicpc.net/problem/11654
여기서 아스키란, 미국 국립 표준 협회에서 표준화한 정보교환용 7비트 부호체계를 뜻한다.
문자를 아스키코드로 변환하기 위해서는 'String.charCodeAt(index)'를 사용하면 된다. 이것을 사용하면 index에 해당하는 문자의 유니코드 값을 리턴해준다.
const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt'
const input = require('fs').readFileSync(readFileSyncAdress).toString();
console.log(input.charCodeAt());
문제 11720번
https://www.acmicpc.net/problem/11720
이 문제는 입력받은 후에 for문을 이용하여 문자를 하나씩 나눠서 더해주면 될 것 같다.
const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt'
const input = require('fs').readFileSync(readFileSyncAdress).toString().split('\n');
const N = Number(input[0]);
let result = 0;
for(let i=0;i<N;i++){
result += Number(input[1].split('')[i]);
}
console.log(result);
처음에 result를 초기화 안 해줬더니 undefined가 앞에 포함되었다. 그리고 '' 이런 식으로 초기화하니 문자로 인식하고 숫자를 더하는 게 아니라 그대로 54321 이런 식으로 출력되었다. 그래서 0으로 초기화하니 다시 잘 더해졌다.
다른 풀이도 찾아보니 for문을 사용할 필요없이 누적시켜 주는데 특화되어 있는 reduce() 함수를 사용하여 값을 누적시켜 준 분도 있었다.
문제 10809번
https://www.acmicpc.net/problem/10809
음... 이 문제는 해당 단어에 알파벳이 있으면 그 알파벳 위치에 해당 인덱스를 출력해주면된다...
그런데 어떤 식으로 작성해야 되는지 모르겠어서 다른 풀이로 먼저 공부해야겠다.
이 분은 각각의 알파벳이 처음 등장하는 위치를 담아둘 곳으로 list를 만들고 for문을 이용하여 i의 시작값을 'a'를 아스키코드로 변환한 값으로 정했다고 한다. 이렇게 숫자로 바꿔서 반복문을 돌린 것 같다.
그리고 String.fromCharCode(i) 함수를 통해 아스키코드 상태인 i 값을 다시 문자열로 바꿔주고 input.indexOf()로 감싸 각각의 문자열이 처음 등장하는 index값을 list에 넣어줬다고 한다. 찾으려는 문자가 없는 경우 indexOf()로 -1이 추가된다.
... 어렵네...
그럼... 이제 내가 다시 작성해 봐야겠다.
const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt'
const input = require('fs').readFileSync(readFileSyncAdress).toString();
let list = [];
for(let i='a'.charCodeAt();i<='z'.charCodeAt();i++){
list.push(input.indexOf(String.fromCharCode(i)));
}
console.log(list.join(' '));
ㅎㅎ 됐다!
[참고] https://velog.io/@gkswn45/JavaScript-%EB%B0%B1%EC%A4%80-10809-%EC%95%8C%ED%8C%8C%EB%B2%B3%EC%B0%BE%EA%B8%B0
'백준 > JavaScript' 카테고리의 다른 글
[JS] 백준 문자열 - 다섯 번째 이야기 (0) | 2024.01.21 |
---|---|
[JS] 백준 문자열 - 네 번째 이야기 (0) | 2024.01.21 |
[JS] 백준 문자열 - 두 번째 이야기 (0) | 2024.01.18 |
[JS] 백준 문자열 - 첫 번째 이야기 (0) | 2024.01.17 |
[JS] 백준 1차원 배열 - 마지막 이야기 (0) | 2024.01.16 |