본문 바로가기

Web19

js sort 메서드 숫자 정렬 이해하기(compareFunction), 프로그래머스 정렬-레벨1-가장 큰 수 자바스크립트 프로그래머스의 정렬 1레벨 가장 큰 수 문제를 풀면서 sort 메서드를 사용하게 되었다. sort 메서드를 사용할 때 항상 comparefunction을 넣어서 사용했었는데 숫자 내림차순, 오름차순 정렬을 할 때 어떤 원리로 정렬이 되는 것인지 제대로 이해해보기 위해서 여기에 정리해본다. 이전에도 한번 정리했었는데 한동안 사용하지 않으니 헷갈린다. 특히나 가장 큰 수 정렬 문제를 할 때 처음에는 배열의 모든 요소를 조합하는 알고리즘을 사용해야 한다고 생각했었는데 정렬만을 이용해서 쉽게 구현할 수 있다는 것을 알게 되었고 그러기 위해서는 sort 메서드 내의 comparefunction을 제대로 이해하고 조작할 수 있어야 했다. # sort() array.sort([compareFunction.. 2021. 7. 3.
Data structures & Algorithms with JavaScripts 스터디 14~15일차 210606 일요일 13~14일차 (인턴하면서 퇴근 후 조금씩 스터디하고 일요일에 복습하면서 진도를 나감) # 12~13일차 복습 CH6 연결 리스트 - 배열의 단점 : 대부분 프로그래밍 언어에서는 배열이 꽉 차면 데이터를 입력하기가 어렵다. 데이터를 추가하거나 삭제할 때도 나머지 요소를 이동해야 하므로 어려움이 따른다. 자바스크립트는 배열의 split()을 이용하면 간단하다. 하지만 자바스크립트의 배열은 객체라서 C++이나 자바보다 배열의 효율이 떨어진다. 따라서 배열이 너무 느리다고 판단되면 사용할 수 있다. 다만 임의의 요소에 접근해야 할 때는 연결리스트보다 배열이 낫다. - 연결 리스트 정의 : node라 불리는 객체가 모여 연결 리스트를 구성한다. 각 노드는 객체 레퍼런스를 통해 리스트의 다른 .. 2021. 6. 6.
Data structures & Algorithms with JavaScripts 스터디 9~11일차 210519 수요일 9~11일차 # 8일차 복습 CH3 리스트 - #1 : 현재 리스트의 모든 요소보다 클 때만 요소를 삽입하는 함수를 구현하시오. 여기서 크다는 의미는 숫자일 때는 크기를 비교하고, 텍스트일 때는 알파벳순으로 나중을 의미한다. 현재 리스트의 모든 요소보다 클 때라는 조건을 만족하는 지 확인하기 위한 함수를 만들었다. 모든 요소보다 크면 true, 큰 요소가 존재할 시 중간에 false를 반환해주는 함수를 구현했다. 먼저 삽입하고자 하는 요소 (after)를 find함수로 찾아서 인덱스를 받은 다음 인덱스가 존재한다면 그 위치에 slice함수를 이용해서 삽입하였다. 삽입 후에는 listSize를 1 증가시킨다. - #2 현재 리스트의 모든 요소보다 작을 때만 요소를 삽입하는 함수를 구현하.. 2021. 5. 20.
[React] HTML table, tr, td 태그 쓰기, JSX에서 table 태그 쓰기, Warning: validateDOMNesting(...): <table> cannot appear as a child of <table> 보호되어 있는 글 입니다. 2021. 5. 17.
[Javascript] for 문, for in 문, for of 문 - for 문 for 문은 while 문과 달리 초기식, 표현식, 증감식을 포함하는 반복문이다. 따라서 while 문보다는 간결하게 반복문을 표현할 수 있다. for ( 초기식 ; 조건식 ; 증감식 ) { 조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 실행문; } for 문의 초기식, 조건식, 증감식은 각각 생략될 수 있다. 또한, 쉼표 연산자를 이용하면 여러 개의 초기식이나 증감식을 동시에 사용할 수 있다. - for in 문 for / in 문은 일반적인 for 문과 전혀 다른 형태이다. 해당 객체의 모든 열거할 수 있는 프로퍼티(enumerable properties)를 순회할 수 있게 해준다. 이 반복문은 루프마다 객체의 열거할 수 있는 프로퍼티의 이름을 지정된 변수에 대입한다. 이렇게 대.. 2021. 5. 17.