내일배움캠프/오늘 배운 내용
[TIL] 정렬
HJ::
2023. 6. 1. 20:06
버블 정렬, 선택 정렬, 삽입 정렬
모두 다 O(n^2) 복잡도를 가지고 있지만,
버블, 삽입 정렬이 모든 상황을 고려해 괜찮고
버블, 선택 정렬이 조그마한 DB관리에 좋다고 한다.
(어려워서 나중에 정리...)
대표로 삽입정렬만 남겼다.
function insertionSort(arr) {
const len = arr.length;
for (let i = 1; i < len; i++) {
let current = arr[i];
let j = i - 1;
while (j >= 0 && arr[j] > current) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = current;
}
return arr;
}
// 예시 사용법
const array = [5, 2, 4, 6, 1, 3];
const sortedArray = insertionSort(array);
console.log(sortedArray); // [1, 2, 3, 4, 5, 6]
# 문제 풀면서 알게된 점
let str;
let str1= 'abc'
console.log('undefinedabc');
// str은 타입을 적지않아서 저렇게 뜬다.
// abc만 출력하기 위해선 let str= ''; 로 초기화 해준다.
// 백슬래쉬를 콘솔 창 띄우기 위해선 두번 작성한다.
console.log('\\');
// 결과값: \
#프로그래머스 대소문자 바꿔서 출력하기
let arr= [...str];
let result="";
let ar =arr.map(el=>{
if(el=== el.toUpperCase()) return el.toLowerCase(); //대문자이면
else if(el=== el.toLowerCase()) return el.toUpperCase(); //소문자이면
else return el.toUpperCase();
})
for(let i=0; i<ar.length; i++){
result+=ar[i];
}
console.log(result);
map, for문을 굳이 두 번 써서 출력해줬다.
왜냐하면 ...ar spread 표현식으로 해줄라 했는데 A b C 이런식으로 띄어서 출력됐다.
*알게된점.. => join(''); 함수를 사용하자.
ar.join(''); 을 사용하면 문자열을 합해준다.
결국, for문을 사용하지 않아도 되게 된다.
그리고 forEach((index,value)=> {
})
를 사용하면 더 명시적이고 직관적이다.
고전한 문제
- 다시 정리할 것
https://school.programmers.co.kr/learn/courses/30/lessons/181943#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
const myStr = [...my_string]
myStr.splice(s, overwrite_string.length, overwrite_string)
return myStr.join("")