일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- 자바스크립트
- Drawing Book
- 생활코딩
- Grading Students
- Divisible Sum Pairs
- git
- Algorithm
- Sock Merchant
- Data Structure
- Between Two Sets
- 알고리즘
- 자료구조
- A Very Big Sum
- javascirpt
- #nodejs#노드js
- Migratory Birds
- Ellectronics Shop
- 노드
- Breaking the Records
- algorithim
- Birthday Chocolate
- Time Conversion
- Apple and Orange
- #nodejs#express
- hackerrank
- Javascript
- nodejs
- 짝수와 홀수
- alogrithim
- Today
- Total
목록Algorithm (52)
ian의 개발일기장
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공식문서
1. 나의 풀이 대문자와 소문자의 개수를 세기 위해서, 모든 문자를 소문자화 시켰다. 그리고 모든 개수를 세어서 비교를 했다. 2. 다른사람 풀이 정규표현식을 이용해서 간단히 풀었다. 3. 결론 정규표현식을 알면 편하다. 4. 정리 정규식은 패턴을 작성할줄 알아야한다. 패턴 작성법은 공홈에 자세히 나와있으니, 링크를 참조하길 바란다. 출처 - 프로그래머스, MDN공식문서
1. 나의 풀이 유클리드호제법을 이용해서 최대공약수를 구했다. while문이 끝나고 b를 console.log(b)로 찍어보면, 최대공약수가 나온다. 최소공배수는 두수의 곱을 최대공약수로 나누면 간단히 구할 수 있다. 2. 다른사람 풀이 최대공약수 구하는것을 재귀함수를 이용해서 풀었다. 3. 결론 유클리드 호제법을 공부해보자. 4. 정리 유클리드 호제법을 알면, 최대공약수를 프로그래밍적으로 쉽게 구할 수 있다. 물론 다른 방법으로도 구할수 있다. 출처 - 프로그래머스, 위키백과