본문 바로가기
기초다지기/JS 코딩테스트

javascript 코딩테스트 입문 (점의 위치 구하기, 문자열 뒤집기)

by 김빵그 2025. 1. 7.

요즘 정말 코테를 멀리했더니 거진 1년을 안 풀고 다른 것만 한 거 같다. 다시 입문 문제부터 천천히 풀어보는데 멈춰버린 뇌에 너무 놀람. ai chat gpt를 너무 의존했다.! 시간 단축 호율성만 따지고 보니 내 뇌는 더욱더 청순해지는거다.. 이 기본 문제도 아는데 헷갈릴 정도가 되었다니.. 근본적인 사고는 스스로 훈련하자 기초부터 다시 천천히 다지자!  

 

1. 문제 (점의 위치 구하기) 

두뇌 풀가동. 

점의 좌표값에 따라서 1,2,3,4 중 하나를 리턴하는 문제이다. 처음엔 그냥 쉽게 if, else if 문을 사용해 코드를 짜려고 했는데. 아차차. 이거 코테였지. 뒤늦게 깨달음. 

function solution(dot) {
   	const [a, b] = dot;
    if(a > 0 && b > 0) {
        return 1
    }else if (a < 0 && b > 0) {
        return 2
    } else if (a < 0 && b < 0 ) {
        return 3
    }else {
        return 4
    }
 
}

가독성과 삼항 연산자를 사용해 리팩토링

function solution(dot) {
    const [a, b] = dot;
    return a > 0 ? (b > 0 ? 1 : 4) : (b > 0 ? 2 : 3);
}
/// 그래도 사실 나에겐 직관적인 코드가 보기 편해서.. 이런 코드가 좀더 눈에 들어오긴 한다.

function solution(dot) {
  var answer = 0;
  if (dot[0] > 0 && dot[1] > 0) answer = 1;
  if (dot[0] < 0 && dot[1] > 0) answer = 2;
  if (dot[0] < 0 && dot[1] < 0) answer = 3;
  if (dot[0] > 0 && dot[1] < 0) answer = 4;
  return answer;
}

 

2. 문제(문자열 뒤집기) 

function solution(my_string) {
    return my_string.split("").reverse().join("");
}

갑자기 뇌정지가 와버린 문제. 아니. 최대한 검색을 안하는 쪽으로 풀려고 했는데. split이었나? join이었나? 생각만 할 뿐 코드를 쳐볼 생각을 1도 못했다. 왜지? 타이핑하고 결과값보고 수정하면 되는데? 그래도 틈틈히 생각이 나는 거 같아서 다행이라고 생각했던 개쉬운 문제.. 

라고 생각할 뻔

function solution(my_string) {
    var answer = [...my_string].reverse().join("");
    return answer;
}

split말고 스프레드 문법으로 쓰면 훨씬 더 코드를 줄일 수 있는데.. 바보바보

 

전개 구문 - JavaScript | MDN

전개 구문을 사용하면 배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 (함수로 호출할 경우) 또는 요소 (배열 리터럴의 경우)로 확장하여, 0개 이상의 키-값의 쌍으로 객체로 확장시

developer.mozilla.org

스프레드 문법은 ... 으로 표현되는 문법으로, 배열이나 객체 객체 리터럴 속성을 확장하는데 사용되어, 주로 데이터를 복사하거나 병합할 때 유용하다. 

// 배열 복사 

const original = [1, 2, 3];
const copy = [...original];

console.log(copy); // [1, 2, 3]
console.log(copy === original); // false (깊은 복사가 아닌 얕은 복사)


// 배열 병합 

const array1 = [1, 2];
const array2 = [3, 4];
const merged = [...array1, ...array2];

console.log(merged); // [1, 2, 3, 4]

// 배열 요소 추가 

const array = [1, 2, 3];
const updated = [0, ...array, 4];

console.log(updated); // [0, 1, 2, 3, 4]

 

'기초다지기 > JS 코딩테스트' 카테고리의 다른 글

javaScript 지뢰찾기게임  (0) 2024.01.29
javaScript 소수 찾기  (0) 2024.01.23
javaScript 코드 계산 (기사단원의 무기)  (0) 2024.01.22
javaScript 과일 장수  (0) 2024.01.18
javaScript 캐시 계산  (1) 2024.01.15