일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 좌우슬라이드
- array #object #lodash #javascript
- ThemeProvider
- darkmode
- hover효과
- 메뉴
- 동영상다운 #영상다운 #크롬웹스토어 #드래그되지않는 #클릭되지않는 #동영상
- 요일구하는공식
- 숫자게임만들기
- 자바스크립트
- 파비콘 #파비콘만들기 #포토샵파비콘
- 요일구하기
- fadeint
- 오류
- GIT
- todolist
- 음악검색기능 #음악찾기기능 #음악찾기 #음악검색 #네이버음악검색 #다음음악검색 #멜론음악검색
- fade-in
- 프로그래머스
- 카카오톡알림설정 #카톡알림설정
- 자바스크립트 #메뉴만들기
- 리액트
- 문자열다루기
- 슬라이드다운
- list추가하기
- React
- 가장작은자연수
- 윈도우10캡쳐 #윈도우10캡처 #윈도우10스크린샷 #캡쳐하기 #캡처하기 #스크린샷찍기 #캡쳐지연 #스크린샷지연
- 티스토리 #폰트변경 #꾸미기
- 네트워크 #5G안터질때 #4G로바꾸는법 #5G를4G로 #5G를LTE로 #갤럭시5G변경
- Today
- Total
잿꽃's posting Garden
프로그래머스에서 코딩테스트 연습4 - 두 개 뽑아서 더하기 본문
임의의 배열에서 두 수를 뽑아 더해서 만들 수 있는 모든 수를 나타내기
ex) [2,1,3,4,1] -> [2,3,4,5,6,7]

배열[0]번일 때 배열[0]을 고정시키고 배열[1], 배열[2], 배열[3]... 를 각각 배열[0]과 더하고
배열[1]번일 때 배열[1]을 고정시키고 배열[2], 배열[3], 배열[4]... 를 각각 배열[1]과 더하는 방식을 이용하였다.
index가 증가함에 따라 i의 초기값도 증가해야 하므로 i와 index를 연결하였다.
function solution(numbers) {
var answer = [];
let result = [];
for(let index = 0; index < numbers.length; index++){
for(let i = index+1; i < numbers.length; i++){
result.push(numbers[index] + numbers[i]);
}
}
answer = [...new Set(result)].sort(function(a,b){return a-b});
return answer;
}
오늘 이 문제를 풀면서 많은 것을 깨달았다.
첫 번째는 for(index in arr){}를 이용하면 index가 숫자를 갖고는 있지만 실제로는 String 타입이라는 것이다.
for(index in arr){
// index는 String 속성이다.
for(let i = index+1; i < arr.length; i++){}
// i는 number의 값을 가진다.
console.log(index+1); // index+1은 String + Number이기 때문에 1이 아닌 01이 나온다.
}
자꾸 NaN값이 나오길래 왜 그러는지 확인했더니 console.log로 확인해보니 값이 01, 02, 03... 이따구로 나왔다.
console.log(index);는 0, 1, 2... 가 나오지만 console.log(typeof index);는 String이 나왔다...(충격). 안 되는 이유가 있었던 것이다.
두 번째는 new Set()은 sort로 정렬이 되지 않는다는 점이다.
처음에는 이렇게 작성하였는데 문법적 오류라고 나왔다.
answer = new Set(result).sort(function(a,b){return a-b});
console.log로 확인을 하니 Set {num, num, num...}라고 나왔다. Set()은 순서가 없이 무작위로 호출된 값이기 때문에 list정렬이 안 되는 것이었다.
new Set()를 그대로 이용하지 않고 전개연산자로 복사하여 sort를 하니 해결되었다.
'WEB > 코딩테스트 연습' 카테고리의 다른 글
프로그래머스에서 코딩테스트 연습6 - 2016년 요일 구하기 (0) | 2022.05.17 |
---|---|
프로그래머스에서 코딩테스트 연습5, 6 - 짝수와 홀수, 수박수박수 (0) | 2022.05.16 |
프로그래머스에서 코딩테스트 연습3 - 나머지가 1이 되는 수 찾기 (0) | 2022.05.14 |
프로그래머스에서 코딩테스트 연습2 - k번째 수 (0) | 2022.05.13 |
프로그래머스에서 코딩테스트 연습1 - 숫자 문자열과 영단어 (0) | 2022.05.12 |