일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Breaking the Records
- 프로그래머스
- nodejs
- #nodejs#노드js
- alogrithim
- Divisible Sum Pairs
- Sock Merchant
- 짝수와 홀수
- #nodejs#express
- Data Structure
- Javascript
- 자료구조
- Algorithm
- Migratory Birds
- 생활코딩
- 노드
- git
- Drawing Book
- Birthday Chocolate
- algorithim
- Time Conversion
- 자바스크립트
- Grading Students
- 알고리즘
- hackerrank
- javascirpt
- A Very Big Sum
- Between Two Sets
- Ellectronics Shop
- Today
- Total
목록Algorithm (52)
ian의 개발일기장
1. 나의 풀이 간단하게 String.repeat 메소드를 이용했다. 2. 다른사람 풀이 String.repeat 대신 for문을 중첩하여 구현하였다. 3. 결론 String.repeat을 알면 유용하지만, 몰라도 구현 할 수 있는것이 중요하다. 4. 정리 반복할 문자열.repeat(반복할 횟수) 출처 - 프로그래머스, MDN공식문서
1. 나의 풀이 for문을 써서, 1~n까지 숫자를 담은 배열을 만든 후, 2중 for문을 이용하여, 각각 합을 구해서 n이 되면 count를 올리는 방식으로 했다. 2. 다른사람 풀이 사실 이코드는 저도 이해가 가질 않습니다. 공부해서 찾아보고, 수정하겠습니다. 3. 결론 for문에서 break, continue에 대해 정리해야겠다. 4. 정리 for문이 중첩되있다. 하지만 break걸어주는건 내부의 for문이기때문에 i와 관련된 for문은 다 돌아간다. 사진이 짤렸지만, 0~5가 찍히는것은 10번 반복된다. j에 관련된 for문은 j===6이면 멈추게 된다. break을 쓰면 loop가 종료된다는것을 알 수 있다. 출처 - 프로그래머스, MDN공식문서
1. 개념 연결리스트(linked list)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료구조이다. 연결리스트는 단일 연결 리스트, 이중 연결 리스트, 원형 연결 리스트 등이 있다. 예를 들어, 한 반에 있는 학생들의 자료를 저장한다면, 학생 1명당 자료를 노드로 만들고, 1번 학생의 자료에 2번학생의 자료가 어디있는지 표시를 해놓는 방식이다. 배열에 비해서, 연결리스트는 노드를 뒤에 연결하거나 중간에 껴놓는 것은 쉽고, 데이터를 추가/삽입 및 삭제가 용이하다. 하지만, 배열은 특정한 자료를 불러내기가 편리한 반면, 연결리스트는 자료 번호가 없고, 연결 관계만 있기 때문에 특정한 노드를 불러내기가 어렵다. 또한 연결리스트는 순차적으로 탐색하지 않으면 특정 위..
1. 나의 풀이 여러개 숫자가 있을 때, 최소공배수를 구하기 위해서 2개씩 짝지어서 최소공배수를 구했다. 그러기 위해서 2개 숫자의 최소공배수를 구하는 함수를 만들었다. 그다음 while문을 통해서, 모든숫자를 돌아서 전체의 최소공배수를 구했다. 2. 다른사람 풀이 나와 다른점은 최대공약수를 구할 때, 재귀함수를 이용했다. 그리고 전체를 reduce를 통해서 함수를 돌았다. 3. 결론 reduce를 조금더 잘 활용해야겠다. 4. 정리 출처 - 프로그래머스, MDN공식문서, 위키피디아
1. 개념 스택(Stack)은 제한적으로 접근할 수 있는 나열구조이고, LIFO(Last In Firist Out)구조로 되어 있다. 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형구조이다. 예를 들어, 동전 케이스에 동전을 넣고, 빼는건 한 쪽 끝에서만 자료를 넣거나 빼는 스택과 비슷하다. 데이터가 들어오고 나가는 곳은 저장소의 끝 부분에 있으며, Top이라고 부른다. 자료를 밀어넣는 것을 Push라 하며, 자료를 꺼내는 것을 Pop이 부른다. 2. 구현 저장소를 배열로 활용했다. push - data를 밀어넣는 것으로, push메소드를 이용했다.pop - 최근에 들어온 data를 꺼내야 하므로, pop메소드를 이용했다.top - 데이터가 들어오고, 나가는 곳의 위치이며, 배열에서 맨마지막 원소가 된다..
1. 나의 풀이 각 숫자의 크기를 비교하기 위해서, split을 이용해 문자열을 배열로 바꾼후, map을 이용해 모든 원소를 숫자로 바꾸었다. 그다음 sort로 오름차순을 한 후, 최솟값과 최댓값을 return하였다. 2. 다른사람 풀이 spread operator와 Math함수를 이용했다. 간단한 풀이이다. 3. 결론 speard operator에 익숙해져야겠다. 4. 정리 ES5Math.max.apply(null, arr) => 배열의 최댓값을 구할 수 있다.Math.min.apply(null, arr) => 배열의 최솟값을 구할 수 있다. ES6Math.max(..arr) => 배열의 최댓값을 구할 수 있다.Math.min(...arr) => 배열의 최솟값을 구할 수 있다. 출처 - 프로그래머스, ..
1. 나의 풀이 먼저 첫번째문자를 제외한 모든문자가 소문자이므로, 소문자화시켜서 split을 이용해 배열로 만들었다.그다음 그배열을 다시 map을 이용해서 첫번째문자만 대문자로 만들고 join을 이용해서 원래의 문자로 만들었다.다만 typeof 를 쓴 이유는 공백이 1개가아닌 두개이상 일 때, 판단하기 위해서이다. 2. 다른사람 풀이 정말 간단하게 풀었다. 나와 생각은 비슷하지만 이게더 간단하다! for문을 이용한 간략한 풀이이다. 깔끔하다. 3. 결론 substring에 익숙해져야겠다. 사실 비슷하게 slice도 있다. 4. 정리 시작인덱스부터 마지막인덱스문자열을 제외하고 리턴한다. substr과는 다르다. 출처 - 프로그래머스, MDN공식문서
1. 나의 풀이 sort를 할때 기준이, 각 문자열의 n번째 인덱스 문자열 비교여서 a[n] 과 b[n]을 이용했다. 그리고 같을때는 비교적 편한 localeCompare함수를 이용했다. 2. 다른사람 풀이 charAt 함수를 이용했다. 3. 결론 localeCompare 메소드를 알고, sort 엮으면 간편하다. 4. 정리 양수,음수,0을 리턴하며, 각 숫자 값에 따라 비교문자의 위치를 알 수 있습니다. 문법을 보면, referenceStr이 compareStr보다 앞에 있으면 음수를 리턴, referenceStr이 compareStr보다 뒤에 있으면 양수를 리턴, 같으면 0을 리턴합니다. 출처 - 프로그래머스, MDN공식문서
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 시키는지 이..