요즘 정말 코테를 멀리했더니 거진 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 |