코딩테스트

20250322

불닭냠냠 2025. 3. 22. 18:25

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);
}

이것도 다른 사람이 풀이한 것과 비슷하긴 했는데, 정규식으로 푸셔서 대단하다 느껴서 넣어봤습니다...ㅎ

 


내일은 일정이 있어서 코딩테스트를 못 올릴 것 같지만, 시간이 된다면 코드를 작성하는 대신 메소드들을 정리하면서 암기하려고 노력해야겠습니다..! 사실 쓰고 싶은 메소드가 있는데 풀려고 하면 계속 구글링하면서 풀기 때문에 익숙해질 수 있도록 정리할 예정입니다.

'코딩테스트' 카테고리의 다른 글

20250327  (0) 2025.03.27
20250324  (0) 2025.03.24
20250321  (0) 2025.03.21
20250320  (0) 2025.03.20
20250316  (0) 2025.03.16