Skip to content

ChoDragon9/algorithm-challenges

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Algorithm Chellenges

재미있던 문제와 알고리즘/자료구조 기초 지식에 대해서 정리한다.

목표

  • 프로그래머스 3000위 이내 진입
  • 프로그래머스 2000위 이내 진입
  • 프로그래머스 1000위 이내 진입
  • 프로그래머스 500위 이내 진입
  • 프로그래머스 100위 이내 진입
  • Hacker Rank 시작

회고

실수 줄이기

시간복잡도가 높을 때

소수를 빠르게 구하기

프로그래머스 /20240510_소수 만들기

  • 2보다 큰 것 중에 2로 나눠지는 수는 소수가 아님
  • 1과 n를 집합에 넣고, 루트 n수까지 1부터 2씩 증가하며 소수를 찾음
    • 집합의 갯수가 2개가 초과되면 소수가 아님

while 조건식 활용

고유한 값을 넣을 때

  • Set을 활용하면 코드도 단순해지고, 탐색 시간이 빠름

경우의 수의 합 중에 최고값 구하기

  • N x M 배열에서 N은 유지되고, M이 증가할 수록 지수만큼 증가된다면 높은 값만 사용하도록 함.
  • 예를 들어 Map<key, value>에서 N은 key에 넣고, value에는 key에 들어갈 값 중에 높은 것 사용.

탐색 수가 많을 때

  • 스택을 활용해서 탐색 범위를 최소화 해야함

정리

수학

  • 등차수열의 합공식 : (첫 번째 수 + 마지막 수) * 길이 / 2
  • 자카드 유사도
  • 소수는 1과 본인이 아닌 수로 나누어 떨어지지 않는 수. 본인을 다른 수로 나눠서 확인해야 함.
  • 콜라츠 추측: 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.
  • 하샤드 수: x의 자릿수의합으로 x가 나눠질 때

알고리즘

About

JavaScript 알고리즘 풀이 정리

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published