Skip to content

This is a auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub).

Notifications You must be signed in to change notification settings

JaeIn1/Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Algorithm

This is a auto push repository for Baekjoon Online Judge created with BaekjoonHub.

새로 알게된 내용

  • 2차원 배열을 만들고 그 값을 채울때 => new Array().fill()를 사용하지 않는다.
    • 이유는 fill 메소드는 얕은 복사로 값을 채우기 때문에 같은 주소값을 가지고 모든 행에 같은 값이 들어간다.
  • 배열안에 값을 서로 바꾸는 문제일 경우 temp 사용대신 forEach(([a,b])=>{[arr[a] , arr[b]] = [arr[b] , arr[a]]})로 쉽게 바꿀 수 있다.
    • 프로그래머스 level0 수열과 구간 쿼리 3
  • 문자열의 특정 인덱스 부분을 수정하고 싶을때
    • slice로 수정부분을 구하고
    • splice를 사용하여 기존 문자열을 수정한다.
    • level0 문자열 여러번 뒤집기
  • 진법 변환을 하고 싶을때
    • parseInt에는 변환하고자 하는 숫자(혹은 문자)와 그 값을 표현하고 있는 진법을 입력해주면 된다. => 그러면 10진수로 변환된다.
    • .toSting(num): 정수를 지정된 진법 num로 문자열 변환
  • 이진탐색 문제에서 LIS 배열 알고리즘
    • 마지막 원소보다 현재 원소 x가 크다면 뒤에 삽입
    • 작다면 가장 왼쪽의 원소와 교체
    • lowerBound()함수를 이용한다.
    • 백준 실버2 '병사 배치하기'
  • 이진탐색에서 생각해야 할 풀이 방법 정리
    • 정렬된 배열이라면 k번째 수를 구할때 mid보다 작은 수를 카운트한다.
    • mid가 k번째 수가 된다고 생각해본다.
    • 백준 골드1 , 'k번째 수'
  • 약수의 개수를 구할때 시간복잡도 해결방법
    • 이중 for문을 사용한다면 시간복잡도로 시간초과
    • 두번째 for문의 수의 범위를 Math.sqrt()함수를 써서 범위를 줄인다.
  • 소수 찾기 시간초과 해결법
    • 에라토스테네스의 체를 이용해서 푼다.
    • 프로그래머스 level1 소수 찾기 참고.
  • Javascript의 문자열이 숫자인지 체크하기 위해서는 isNaN() 함수를 사용합니다.

정규표현식 , => 프로그래머스 신규 아이디

  • [^문자] = 대괄호 안의 문자를 제외한다.
  • \w = 밑줄 문자를 포함한 영, 숫자 문자를 의미한다.[A-Za-z0-9_]와 동일하다.
  • \d = 숫자를 의미
  • /g = 문자열 내의 모든 패턴을 검색한다.
  • \특수기호 (*, ^, ? . 등) = 해당 특수기호를 의미한다.
  • {Min,} = 최소 Min개 ex) [...를 .로 바꾸기 위해 {/.{2,}/g , "."}를 사용한다.]
  • ^문자열 = 특정 문자열로 시작
  • 문자열$ = 특정 문자열로 끝남

사용한 함수

  • sort()
    • 정렬한 배열. 원 배열이 정렬됨. (복사본이 만들어지는 것이 아님!!)
    • 배열 오름차순 , 내림차순에 사용
  • reduce()
    • 배열의 합계 및 최대값 , 최소값에 사용 할 수 있음
    • reduce(a,b => { return ...}) 이라면 a는 배열의 첫번째 요소가 들어감
  • 배열.includes()
    • 포함하는지 체크
    • 값이 포함 안되는 부분을 출력하는 문제에서 사용 할 수 있음
  • 배열.reverse()
    • 배열의 순서를 뒤바꿈
    • 특정 부분을 역순으로 할때
      • splice와 reverse를 같이 사용한다.
  • forEach(a,index)
    • 2차원배열에서 인덱스 구할때 쉽게 구할 수 있음
  • Math.max(...arr)
    • 배열안에 요소중 최대값 구할때 용이
  • splice()
    • 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경합니다.
    • array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
  • findIndex()
    • findIndex() 메서드는 테스트 기능을 충족하는 요소의 인덱스를 반환하거나 테스트를 통과한 요소가 없으면 -1을 반환합니다.
  • every()
    • 배열의 모든 원소를 비교할때 사용 할 수 있다.
    • prevArr.every((e,i) => e === next[i]); 이런식으로 사용한다.
    • JSON.stringify()를 사용해서 비교해도 가능

About

This is a auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published