
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('close', function () {
console.log("!@#$%^&*(\\'\"<>?:;");
});
처음엔 잘 몰라봐서 삽질을 좀 했으나... 잘 보면 특수문자 열에 역슬래시가 있다!
역슬래시가 있을 경우 자바스크립트에서는 이스케이프 문자로 처리하기 때문에,
\` 출력을 위해서는 \\` 처럼 역슬래시를 두 개 써줘야한다.

function solution(my_string, overwrite_string, s) {
let my_string_cut = '';
let overwrite_string_cut = '';
my_string_cut = my_string.slice(0, s);
my_string_cut_2 = my_string.slice(s+overwrite_string.length, my_string.length)
var answer = my_string_cut + overwrite_string + my_string_cut_2;
return answer;
}
처음에는 overwrite_string도 slice를 해야하는 줄 알았는데, 아니였다.
처음부터 s까지 slice + overwrite_string 끼워넣고 + 나머지는 다시 기존 문자열을 더하는 방식으로 구현하면 된다.

function solution(s) {
let answer = 0;
let count_same = 0;
let count_diff = 0;
let x = s[0];
for (let i = 0; i < s.length; i++) {
if (s[i] === x) {
count_same++;
} else {
count_diff++;
}
if (count_same === count_diff) {
answer++;
x = s[i + 1];
count_same = 0;
count_diff = 0;
}
}
if (count_same !== 0 || count_diff !== 0) {
answer++;
}
return answer;
}
첫 Lv 1 문제였고, 문제 이해가 좀 느렸다,,,
막상 구현에 성공하고 보니 전혀 복잡한 코드가 아니라는걸 깨달았다.
문자열 처음부터 시작하여
Case 1
첫번째 문자와 같을 경우 count_same 1 증가
Case 2
첫번째 문자와 다를 경우 count_diff 1 증가
Case 3
만약 count_same과 count_diff가 다를 경우 문자열이 하나 분리되니 answer가 1 증가한다. 그리고 문자열이 분리된 곳에서 다시 처음부터 시작해야하니, 첫 문자열인 x를 다시 지정해주고, count_same과 count_diff도 초기화해준다.
Case 4
count_same과 count_diff가 다른데 문자열의 끝일 경우, 분리해준다.