일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 짝수와 홀수
- Apple and Orange
- 알고리즘
- Grading Students
- A Very Big Sum
- Migratory Birds
- hackerrank
- Divisible Sum Pairs
- 자바스크립트
- Breaking the Records
- algorithim
- Drawing Book
- 자료구조
- Between Two Sets
- Sock Merchant
- Data Structure
- #nodejs#노드js
- Algorithm
- #nodejs#express
- alogrithim
- javascirpt
- Ellectronics Shop
- 노드
- nodejs
- Birthday Chocolate
- Javascript
- 생활코딩
- Time Conversion
- git
- 프로그래머스
- Today
- Total
목록알고리즘 (60)
ian의 개발일기장
1. 나의 풀이 재귀를 이용해서 풀려고 했더니, 테스트케이스에서 시간초과로 막혔다. 그래서 while문을 이용해서, 피보나치수를 담는 result배열을 구했고, n이 2이상이면 n번째 피보나치수를 1234567로나눈 나머지를 리턴하라고 했으므로, result에 push를 해줄 때, 합을 나누어서 넣어주었다. 2. 다른사람 풀이 이풀이는 재귀를 이용한 풀이이다. 하지만 지금은 효율성체크에서 막힌다. for문을 이용한 간략한 풀이이다. 깔끔하다. 3. 결론 시간복잡도에 대해서 점점 더 생각을 가져봐야할것 같다. 4. 정리 고등학교 수업시간에 배웠었는데.. 코딩으로 풀려고 하니 다르다. 수열파트에서 배웠던부분인데.. 피보나치에 대한 설명은 위키로 남겨둔다. n번째 피보나치수 구하는 공식이 있는데 컴퓨터로는 소..
1. 나의 풀이 sort를 할때 기준이, 각 문자열의 n번째 인덱스 문자열 비교여서 a[n] 과 b[n]을 이용했다. 그리고 같을때는 비교적 편한 localeCompare함수를 이용했다. 2. 다른사람 풀이 charAt 함수를 이용했다. 3. 결론 localeCompare 메소드를 알고, sort 엮으면 간편하다. 4. 정리 양수,음수,0을 리턴하며, 각 숫자 값에 따라 비교문자의 위치를 알 수 있습니다. 문법을 보면, referenceStr이 compareStr보다 앞에 있으면 음수를 리턴, referenceStr이 compareStr보다 뒤에 있으면 양수를 리턴, 같으면 0을 리턴합니다. 출처 - 프로그래머스, MDN공식문서
1. 나의 풀이 원래는 다른풀이를 썼는데.. 효율성테스트로 인해서, 에라토스테네스의 체를 이용해야한다는것을 알았다. 에라토스테네스의 체는 수학에서 소수를 찾는 방법중에 하나이다. 2. 다른사람 풀이 주석에 풀이가 잘 나와있다. 3. 결론 효율성에 대해서 잘 생각해보고, 코드를 짜야겠다. 4. 정리 에라토스테네스의 체 = 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 그림에서 회색 사각형으로 두른 수들이 여기에 해당한다.2는 소수이므로 오른쪽에 2를 쓴다. (빨간색)자기 자신을 제외한 2의 배수를 모두 지운다.남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. (초록색)자기 자신을 제외한 3의 배수를 모두 지운다.남아있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다. (파란색)자기 자신을..
1. 나의 풀이 일단 내가 생각한 아이디어는 일주일이 7일 이므로, 7로 나눈 나머지에 따라서 요일들을 결정하려고 했다. 1월 1일이 금요일이므로, 7로나눈 나머지가 1이면 FRI가 출력되도록 answer array를 만들었다. return 을 answer array에서 뽑기 위해, 나머지와 인덱스를 일치 시켜서 array를 만들었다. 그리고 월에 따라 더해질 날짜들의 month array를 만들었다. 1월을 입력하면 날짜로만 계산하면 되기 때문에 첫번째는 0으로 설정해두었다. 예를들어, 2월 3일을 입력하면, 1월은 총31일이므로 31일+3일 더해서 총 34일이 나오고, 이것을 7로 나누면 나머지가 6이다. 그러므로 2월 3일은 WED가 나온다. 2. 다른사람 풀이 new Data라는 함수를 이용했다...
1. 나의 풀이 일단 문제는 공백을 기준으로 단어들 마다 인덱스를 구분해야하므로, split메소드를 이용했다. 그리고 map 메소드를 통해서 각단어에 따라 홀수인덱스면 소문자, 짝수인덱스면 대문자를 짜서 배열로 결과를 return 시키고, 그것을 다시 공백이 있는 문자로 바꾸기 위해서 join 메소드를 이용했다. 2. 다른사람 풀이 정규표현식을 이용했다. 3. 결론 정규표현식을 정말로 조만간 정리해야겠다. 이번문제를 통해서 join에 대해서도 잘 이해가 필요하다는것을 느꼇다. 4. 정리 배열에 join 메소드를 사용 할 수 있고, ()안에는 구분자가 들어가야 한다. 그리고 join을 이용하면, 모든 원소들을 String으로 return 한다. 예제를 통해서 구분자를 통해서 어떻게 return 시키는지 이..
1. 나의 풀이 지난번에 풀었던 시저암호 때문인지.. 어렵게 풀었다. 아스키코드로 65~90이 A~Z이고, 97~122가 a~z인것에 대해 아이디어를 얻었다. 문자를 큰것부터 내림차순으로 나열해야하기 때문에, 아스키코드가 큰것부터 작은것으로 나열하면 되었다. 그래서 먼저 문자열의 모든 아스키코드를 빈배열에 담아서, sort를 이용해 정렬했다. 그리고 나서 각 코드를 String.fromCharCode를 이용해 문자열로 바꾸었다. 2. 다른사람 풀이 간단한 풀이이다. 첫번째꺼는 sort의 내림차순 정렬을 이용한 것이고, 두번째 풀이는 reverse를 이용했다. 3. 결론 sort 문자열 정렬에 대해서도, 알아야 겠다. 4. 정리 문자열을 내림차순으로 정렬하기 - Array.sort ( (a, b) => {..
1. 나의 풀이 이문제를 풀기위해서 아스키코드를 사용했다. 65~90번은 'A~Z'를 나타내고, 97~122번은 'a~z'를 나타낸다. charCodeAt 메소드로 글자의 코드번호를 알 수 있고, fromCharCode 메소드로 코드번호에 해당하는 문자를 알 수 있다. 다만 시저암호에서 z에서 한칸 옆으로 가면 a가 되야하므로, 조건을 설정 해주었다. 2. 다른사람 풀이 아스키코드를 이용한 또다른 풀이이다. 3. 결론 문자 인코딩 방식을 공부해야겠다. 4. 정리 자바스크립트문자열 => 아스키코드 변환 : charCodeAt 메소드아스키코드 => 자바스크립트문자열 : fromCharCode 메소드 각 메소드에대해서 공식문서 링크를 걸어놨다. 출처 - 프로그래머스
1. 나의 풀이 단순하게 for문을 이용했다. 수박수박을 만들때 인덱스가 짝수면 '수'이고, 홀수면 '박'이기 때문이다. 2. 다른사람 풀이 repeat와 substring을 활용한 간단한 풀이이다. 3. 결론 문자열을 반복 할 때, repeat를 잘 써야겠다. 4. 정리 입력한 횟수만큼 반복한다. 출처 - 프로그래머스, MDN공식문서
1. 나의 풀이 indexOf 함수를 이용했다. 2. 다른사람 풀이 for문을 이용했다. indexOf가 어떻게 돌아가는지 볼 수 있는 좋은 답이다. 3. 결론 함수를 사용하는 것도 좋지만, 원리를 알자. 또한 ES6 template literals에 익숙해지자. 4. 정리 템플릿 리터럴을 이용하면, 코드가 더 간결해진다. 출처 - 프로그래머스, MDN공식문서