일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 짝수와 홀수
- Data Structure
- 자바스크립트
- Between Two Sets
- git
- Time Conversion
- #nodejs#express
- Breaking the Records
- Apple and Orange
- 생활코딩
- 프로그래머스
- Migratory Birds
- #nodejs#노드js
- algorithim
- 자료구조
- Grading Students
- nodejs
- javascirpt
- A Very Big Sum
- Divisible Sum Pairs
- Sock Merchant
- Ellectronics Shop
- 노드
- hackerrank
- Javascript
- alogrithim
- Algorithm
- Drawing Book
- Birthday Chocolate
- 알고리즘
- Today
- Total
목록프로그래머스 (38)
ian의 개발일기장
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공식문서
1. 나의 풀이 for문을 이용해서, 늘어나는 간격만큼 빈배열에 추가했다. 2. 다른사람 풀이 간격을 더해서 추가하는 방식이다. 3. 결론 등차수열이다! 4. 정리 등차수열 - 각 항 사이의 간격이 일정한 수열. 즉, 일정한 값 더해져서 증가한다. 출처 - 프로그래머스, 등차수열위키
1. 나의 풀이 부호랑 숫자로 이루어진 문자열이라 Number를 활용했다. 2. 다른사람 풀이 문자열을 1로 나누었다. 3. 결론 숫자로이루어진 문자열은 Number함수 적용이 가능하거나 * 나 / 연산이 적용가능하다. 4. 정리 숫자로 이루어진 문자열 * 숫자 = 숫자숫자로 이루어진 문자열 / 숫자 = 숫자 출처 - 프로그래머스
1. 나의 풀이 길이가 4인지 6인지 먼저 판단을 하고나서, 그 이후 문자열안에 숫자로 이루어져있는지 판단하는것을 문제에서 시킨대로 했다. 길이가 4와 6이 아니라면 무조건 false를 return하게 했고, 길이가 4와 6일때, for문을 통하여 숫자인지 체크했다. 숫자인지 체크하기 위해 문자를 원소를 숫자로 바꾼뒤 그것이 숫자가 맞는지 판단했다. 2. 다른사람 풀이 두가지 풀이를 올렸다. 1개는 정규표현식을 활용했고, 1개는 isNaN함수를 이용했다. 3. 결론 isNaN함수를 공부해야겠다. 4. 정리 예제를 통해서 NaN을 판별하는것을 볼 수 있다. 출처 - 프로그래머스, MDN공식문서