► JS Algorithm/Basic
-
JavaScript 알고리즘 | 27_가까운 거리 구하기► JS Algorithm/Basic 2022. 9. 28. 14:46
🔒 Q 문자열과 알파벳을 입력받는다. 입력받은 알파벳과 각 문자열의 문자들마다 최단거리를 구하시오. ( 입력된 알파벳은 0, 앞뒤로 거리마다 +1씩 증가 ) 🔒 ex 입력값 ilovepineapple, e 출력값 4, 3, 2, 1, 0, 1, 2, 1, 0, 1, 2, 2, 1, 0 🔒 Solution ▼나의풀이 function solution(noun, alphabet) { let answer = []; let origin = [...noun]; // 문자마다 배열로 바꾸기 let count1 = Number.MAX_SAFE_INTEGER; // 순방향 최대정수에서부터 거리세기 (배열 앞쪽 최소값 혼돈방지) let count2 = Number.MAX_SAFE_INTEGER; // 역방향 최대정수에서..
-
JavaScript 알고리즘 | 26_ 숫자만 추출► JS Algorithm/Basic 2022. 9. 28. 14:46
🔒 Q 입력받은 문자열 중 숫자만 추출하여 0을 포함한 자연수로 치환하세요. (자연수: 1 ~ ∞) 🔒 ex 입력값 zh0e71ld2d4hk0d 출력값 071240 🔒 Solution ▼나의풀이 function solution(question) { let answer = ""; let all = question; var regex = /[^0-9]/g; answer = all.replace(regex, ""); return answer; } console.log(solution("zh0e71ld2d4hk0d"));
-
JavaScript 알고리즘 | 25_ 회문 찾기► JS Algorithm/Basic 2022. 9. 28. 14:45
🔒 Q 입력받은 문자열이 회문인지 아닌지 판별하세요. (팰린드롬 palindrome = 회문 : 앞에서부터 읽으나 뒤에서부터 읽으나 같은 말이 되는 어구) 조건: 1)알파벳 이외의 문자는 취급하지 않습니다. 2)대소문자는 구분하지 않습니다. 🔒 ex 입력값 DA2r(ko3ra)nge, ligH*tgreen, ne#ergth#Gil, Eg@naro5krad 출력값 회문입니다 🔒 Solution ▼나의풀이 function solution(nouns) { let answer = ""; let arr = nouns; let onlyString = []; // 문자만 묶음 var reg = /[\{\}\[\]\/?.,;:|\)*~`!^\-_+@\#$%&\\\=\(\'\"]/g; // 모든 특수문자 찾기 var n..
-
JavaScript 알고리즘 | 24_ 회문 찾기 (문자열 순서 반대로 바꾸기)► JS Algorithm/Basic 2022. 9. 25. 22:40
🔒 Q 입력받은 문자열이 회문인지 아닌지 판별하세요. 대소문자는 구분은 하지 않습니다. (회문: 앞에서부터 읽으나 뒤에서부터 읽으나 같은 말이 되는 어구) 🔒 ex 입력값 levEl 출력값 회문입니다 🔒 Solution ▼나의풀이 function solution(a) { let answer = ""; let arr = [...a]; let reverse = [...arr].reverse(); //reverse(): 배열 순서 뒤집기 let half = Math.floor(a.length / 2); //Math.floor(): 소수 버림 for (let i = 0; i < half; i++) { if (arr[i].toLowerCase() === reverse[i].toLowerCase()) { //toL..
-
JavaScript 알고리즘 | 23_ 지뢰 찾기(배열 십자형태로 비교)► JS Algorithm/Basic 2022. 9. 25. 22:40
🔒 Q N*N 바둑판이 주어질 때, 자신의 숫자가 상하좌우보다 크면 지뢰가 묻혀있다고 가정하자. 다음과 같이 입력값이 주어질 때, 지뢰가 몇개 있는지 찾으세요. (단, 바둑판의 가장자리는 0입니다.) 🔒 ex 입력값 [5, 3, 7, 2, 3], [3, 7, 1, 6, 1], [7, 2, 5, 3, 4], [4, 3, 6, 4, 1], [8, 7, 3, 5, 2] 출력값 10 🔒 Solution ▼나의풀이 function solution(a) { let answer = 0; let table = a; for (let i = 0; i < table.length; i++) { for (let j = 0; j < table[0].length; j++) { let num = table[i][j]; if ( //..
-
JavaScript 알고리즘 | 22_바둑판 최대값 구하기(가로,세로,대각선)► JS Algorithm/Basic 2022. 9. 25. 22:39
🔒 Q 바둑판의 모든 행의 합, 모든 열의 합, X방향의 대각선의 합 중 가장 큰 값을 구하세요. 🔒 ex 입력값 [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [29, 28, 27, 26, 25], [24, 23, 22, 21, 20], [15, 18, 19, 14, 13] 출력값 135 🔒 Solution ▼나의풀이 function solution(a) { let answer = Number; //정답 let table = a; //표 let allArr = []; //가로,세로,대각선 각각 합의 묶음 //각각 row행의 합 묶음 let horizontalLines = []; for (let i of table) { horizontalLines.push(i.reduce..
-
JavaScript 알고리즘 | 18_ 앞사람보다 큰 사람 선별(배열의 앞인덱스와 비교)► JS Algorithm/Basic 2022. 8. 31. 10:42
🔒 Q 무작위의 키 순으로 줄을 섰다. 앞에서 볼 때, 앞사람보다 키가 커서 보이는 뒷사람들을 선별하시오 🔒 ex 입력값 164, 158, 172, 167, 181, 175, 151 출력값 164, 172, 181 🔒 Solution function solution(...heights) { let answer = [heights[0]]; for (let i = 1; i < heights.length; i++) { if (heights[i - 1] < heights[i]) { answer.push(heights[i]); } } return answer.join(", "); } console.log(solution(164, 158, 172, 167, 181, 175, 151));// output: 164, ..
-
JavaScript 알고리즘 | 17_앞 숫자보다 작은 숫자 착출(배열의 앞 인덱스와 비교)► JS Algorithm/Basic 2022. 8. 30. 23:52
🔒 Q 숫자들 중에 앞 숫자보다 작은 숫자들만 착출하시오 🔒 ex 입력값 8, 1, 40, 23, 80, 55 출력값 8,1,23,55 🔒 Solution function solution(...nums) { let answer = [nums[0]]; for (let i = 1; i nums[i]) { answer.push(nums[i]); } } return answer.join(", "); } console.log(solution(8, 1, 40, 23, 80, 55)); //output: 8,1,23,55