2의 영역
function solution(arr) {
if (!arr.includes(2)) {
return [-1];
}
let start = arr.indexOf(2);
let end = arr.lastIndexOf(2);
return arr.slice(start, end + 1);
}
// 다른 사람 풀이
function solution(arr) {
arr = arr.slice(arr.indexOf(2), arr.lastIndexOf(2) + 1);
return arr.length == 0 ? [-1] : arr;
}
다른 사람 풀이랑 비슷하긴 했는데, 삼항 연산자 쓰신 것 보고 깨달았습니다... 아직도 멀었구만...
qr code
function solution(q, r, code) {
let answer = [];
for (let i = 0; i < code.length; i++) {
if (i % q === r) {
answer.push(code[i]);
}
}
return answer.join("");
}
// 다른 사람 풀이
function solution(q, r, code) {
let answer = "";
for (let i = r; i < code.length; i += q) answer += code[i];
return answer;
}
사실 answer이 처음에 문자열로 선언이 되어있는데, 왜 배열로 해서 먼 길을 돌아갔을까요..ㅎ
왼쪽 오른쪽
function solution(str_list) {
let index = str_list.findIndex((x) => x === "l" || x === "r");
if (index === -1) return [];
return str_list[index] === "l" ? str_list.slice(0, index) : str_list.slice(index + 1);
}
// 다른 사람 풀이
function solution(str_list) {
const i = str_list.findIndex((str) => /l|r/.test(str));
if (i === -1) {
return [];
}
return str_list[i] === "l" ? str_list.slice(0, i) : str_list.slice(i + 1);
}
이것도 다른 사람이 풀이한 것과 비슷하긴 했는데, 정규식으로 푸셔서 대단하다 느껴서 넣어봤습니다...ㅎ
내일은 일정이 있어서 코딩테스트를 못 올릴 것 같지만, 시간이 된다면 코드를 작성하는 대신 메소드들을 정리하면서 암기하려고 노력해야겠습니다..! 사실 쓰고 싶은 메소드가 있는데 풀려고 하면 계속 구글링하면서 풀기 때문에 익숙해질 수 있도록 정리할 예정입니다.