일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- sw expert academy
- SW
- 자바
- 이코테
- 리액트
- C++
- createSlice
- Get
- 항해플러스
- react-redux
- redux
- programmers
- 항해99
- 프로그래머스
- maeil-mail
- Python
- json-server
- redux-saga
- java
- 코딩테스트합격자되기
- react
- useDispatch
- 매일메일
- Algorithm
- axios
- JavaScript
- 테코테코
- react-router
- redux-toolkit
- Today
- Total
목록JavaScript (100)
Binary Journey
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/TYLG1/btrcVjHgKjN/J7O3pbVxj1Ds3K4ecD2381/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript 문제를 보고 ASCII CODE로 shift 해야 한다는 걸 직감했다 그래서 구글링 해봤더니 Caeser Cipher 라는 게 있었다. 이게 문제 제목에서 가리킨 시저 암호였다. 처음 소스는 이랬다. (하지만 제출은 안 했다. 갓택오버플로우 베낀 소스여서) 1) function solution(s, k) { var n = 26; // alphabet letters amount if (k { if (c.match(/[a-z]/i)) { con..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c4hFwa/btranXl0IxA/V66npBTqny0EmGExwcyRok/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript 나의 풀이다. (프로그래머스 풀다 보니 reduce에 대해 호기심이 생겨 level1 에서 reduce를 엄청 사용하기 시작하였다.) function solution(arr) { return arr.reduce((acc, curr) => acc + curr) / arr.length; } ** Java java는 그냥 for문을 돌렸다. for문이 가장 빠르다고 매번 갓택오버플로우에서 얘기가 나왔기에 class Solution { public double solution(int[] arr) { double answer = 0; for (int i = 0; i < ar..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bbOcFv/btrakSlDVWJ/PCHzUjyKrNGLqMg4RerE3k/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript 1) 나의 첫번째 풀이는 이렇다. function solution(x) { const arrX = `${x}`.split("").map((n) => parseInt(n)); let sum = 0; for (const num of arrX) { sum += num; } return !(x % sum); } 2) reduce 를 좋아하는 지금의 나 function solution(x) { return !( x % `${x}`.split("").reduce((acc, curr) => { acc += parseInt(curr); return acc; }, 0)); } 욕심..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Hr9fl/btrai6YPD32/oMULRmWJCPJvFMmOy9xgEk/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript 1) 나의 첫번째 풀이는 이렇다. function solution(phone_number) { if (phone_number.length === 4) { return phone_number; } else { const numbers = phone_number.replace(/(\d)(\d{4}$)/, "$1-$2").split("-"); let mask = ""; for (var i=0; i (index < phone_number.length - 4) ? acc + "*" : acc + curr, ""); } 3) map 과 join 을 이용해도 된다. functi..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bpoQtS/btraiagcChX/lGnovJBhUFk6KfZG8HNmTK/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 행렬의 덧셈은 행의 개수와 열의 개수가 같은 것끼리만 가능하다. ** Javascript 나의 풀이는 이렇다. function solution(arr1, arr2) { return arr1.map((col, idx1) => col.map((row, idx2) => row + arr2[idx1][idx2])); } 당시 javascript 의 다양한 기능들을 몰라서 map만 이용하여 이렇게 풀었다. 그런데 나 말고 다른 사람들도 생각이 비슷했던 것 같다. 근데 정확히는 col 과 row 위치가 바뀌어야 한다 ㅎㅎ ** Java 나의 풀이는 이렇다. class Solution { public ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/d3u67y/btq98uZ7OJi/KYZW5VxWvCOd5TYSHVYfkk/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 문제는 이렇다. ** Javascript 내 풀이는 이렇다. function solution(n) { const sqrt = Math.sqrt(n) % 1 === 0 ? Math.sqrt(n) : -1; return sqrt === -1 ? sqrt : Math.pow(sqrt + 1, 2); } 사실 온전한 내 실력으로 풀지는 않았고 루트를 씌웠을 때 결과값이 정수인지 아닌지 가리는 방법을 갓택오버플로우에서 찾았다. https://stackoverflow.com/questions/30919111/whats-the-best-way-in-javascript-to-test-if-a-given-..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/chJ7tw/btrac881Qvl/2Tz0bbSNvluHyCt5v2KPXk/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 문제의 규칙(?)은 이러하다. ** Javascript 씐난다. 이번에도 풀고 나서 엄청 뿌듯했다. 댓글 달린 날짜들 보니까 대부분 7월 초-중순이다. 2021 카카오 문제인 것만 알았는데 생각보다 올라온 지 얼마 안 된 문제였나 보다. 내 풀이는 이렇다. function solution(s) { const numbers = [ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" ]; for (const number of numbers) { s = s.replace(new RegExp(`${number..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/uScOA/btraeuwUmyQ/BOHczXfwlkl63rCPSsiVPK/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 문제는 이렇다. ** Javascript javascript 의 sort 와 reverse 함수를 아직 제대로 이해하지 못해서 내 코드는 상대적으로 긴 편이다. sort 와 reverse 는 기본적으로 문자열을 정렬해준다. 그런데 대소문자까지 가려줄 줄은 생각도 못했다. 다른 사람들의 풀이를 보면 sort 는 기본적으로 대문자-알파벳순>소문자-알파벳순 이렇게 정렬해주고 reverse 는 문자 그대로 뒤집어주는 것 같다. 나의 풀이다. function solution(s) { let lowerCaseArr = Array .from(s) .filter((str) => str === str.to..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/btSw7Q/btradSLyXs5/iqn5NlsOLHOkGqGjxYhc3K/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 문제는 이렇다. ** Javascript function solution(strings, n) { return strings.sort((a, b) => a[n].localeCompare(b[n]) || a.localeCompare(b)); } 문제 풀다보면 javascript 능력자들의 코드들을 볼 수 있는데 드디어 나도!!! 한 줄의 간지를 드디어 해봤다! 다른 사람 풀이 중에 내 풀이랑 같은 건 아직 없는 것 같다! ^_____________________________^ localeCompare 도 이번에 처음 알았다. String.prototype.localeCompare() The..
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 등차수열 문제였다. ** Java 1) 이건 내 첫번째 풀이였다. class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; for (int i = 0; i < n; i++) { answer[i] = Long.valueOf(x) + Long.valueOf(x) * Long.valueOf(i); } return answer; } } 위 소스를 보면 자료형 때문에 Long.valueOf 을 쓴 걸 볼 수 있는데 애초에 input 을 long 으로 받으면 될 문제였다. 2) 그래서 수정한 풀이는 이렇게 ..