반응형

알고리즘 5

LRU Cache (Least Recently Used) / 프로그래머스 캐시

- 사용한지 가장 오래된 페이지를 교체. - 현 시점에서 가장 오랫동안 사용하지 않은 페이지와 교체. - 각 페이지마다 계수기를 두어 사용하는 기법 개념설명: https://youtu.be/6wulDqi6z-s function solution(cacheSize, cities) { var cache = [], answer = 0, cache_idx = 0; if (cacheSize == 0) return cities.length * 5; cities.map(city => { city = city.toLowerCase(); cache_idx = cache.indexOf(city); if (cache_idx > -1) { cache.splice(cache_idx, 1); answer++; // Cache Hi..

Algorithm 2022.01.19

콜라츠 추측

https://www.quantamagazine.org/mathematician-terence-tao-and-the-collatz-conjecture-20191211/ 문제설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주..

Algorithm 2021.08.27

하샤드의 수 (Harshad Number)

문제설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 사항 x는 1이상, 10000 이하인 정수입니다. 입출력 예 n result 설명 10 true 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 12 true 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 11 false 11의 모든 자릿수의 합은 2입니다. 11은 2로 나누어 떨어지지 않으므로 11는 하샤드 수가 아닙니다. ..

Algorithm 2021.08.25

주민등록번호 체계 및 유효성 검사 (javascript)

ABCDEF - GHIJKLM 주민등록번호는 위와 같이 13자리로 구성되어 있다. 각 구성을 알아보자. ABCDEF : 생년월일 G: 성별을 나타낸다.생년월일의 년도가 2자리만 표기가 되기때문에 A에서 자세히 구분할수 있다. 1: 1900년대에 출생한 남자 2: 1900년대에 출생한 여자 3: 2000년대에 출생한 남자 4: 2000년대에 출생한 여자 5: 1900년대에 출생한 외국인 남자 6: 1900년대에 출생한 외국인 여자 7: 2000년대에 출생한 외국인 남자 8: 2000년대에 출생한 외국인 여자 9: 1800년대에 출생한 남자 0: 1800년대에 출생한 여자 HIJK: 출생신고를 한 지역 코드이며 아래와 같은 형식을 가지고 있다. H: 지역 I: 시.군.구 J: 동.읍.면 K: 통.반.리 HI..

Algorithm 2016.10.07

에라토스테네스의 체를 이용한 소수 찾기

트라이캐치의 소수 찾기 문제 - 해당하는 모든 소수를 출력하라.소수란 1과 자기 자신만을 약수로 가지는 수이다. 100이하의 자연수 중 모든 소수를 출력하시오. 소수를 오름차순으로 출력한다. 각 출력값 사이는 공백으로 구분하고 출력값 5개 마다 줄바꿈을 한다.아래와 같은 결과 값이 출력되어야 한다.2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 위 내용까지 트라이캐치의 소수 찾기 문제이며, 아래코드는 오름차순과 출력값 사이를 공백으로 구분하고, 5개마다 줄바꿈을 적용하지 않은 소스이다. 해당 코드는 범용성을 위해 자바스크립트를 이용하여 만들었으며, 에라토스테네스의 체를 이용한 방법이다. 아래는 재귀 함수를 이용하여 좀더 간략하..

Algorithm 2016.05.17
반응형