Algorithm272 [ 자바스크립트(JavaScript) ] 28 - 문자열 압축 📍 28 - 문자열 압축 if-else문을 이용해서 구현했다. let s = "KKHSSSSSSSE"; console.log(solution(s)); // 나의코드 function solution(s) { let cnt = 1; let answer = ""; for (let x of s) { if (x === answer[answer.length - 1]) cnt++; else { if (cnt >= 2) answer += cnt; answer += x; cnt = 1; } } return answer; } // 강사님 코드 function solution(s) { let cnt = 1; let answer = ""; s += " "; for (let i=0; i1) answer+=cnt cnt = 1 .. 2021. 8. 17. [ 자바스크립트(JavaScript) ] 27 - 가장 짧은 문자거리 📍 27 - 가장 짧은 문자거리 target이 문자열 s에서 떨어진 최소거리를 출력하는 문제다. 여기서 고려해야하는 점이 있는데, 처음에 cnt = 0으로 초기화하고 문제를 풀고나서 강의를 들어보니까 맨 좌측을 기준으로 판단할때는 맨 좌측에 target이 없으므로 cnt를 제일 큰 숫자로 초기화해야한다는 것이다. 그렇게해야 reverse로 검사할때도 올바른 답을 도출해낼 수 있다. 잘 이해가 되지 않는다면 테스트 케이스 입력: tteachermodett 출력: 2 1 0 1 2 1 0 1 2 2 1 0 1 2와 같이 나오는지 확인해보자. let s = "teachermode"; let target = "e"; console.log(solution(s, target)); // 나의코드 function so.. 2021. 8. 17. [ 자바스크립트(JavaScript) ] 26 - 숫자만 추출 📍 26 - 숫자만 추출 문자 + 숫자가 섞여있는 문자열에서 숫자만 추출하는 문제다. 숫자판별은 isNaN 함수를 사용해서 숫자인지 확인하거나, 정규표현식(Reg)으로 숫자인지 확인하는 방법을 사용했다. let s = "g0en2T0s8eSoft"; // let s = "tge0a1h205er" // let s = "12a3E4hg5n6vc7x" console.log(solution(s)); // isNaN function solution(s) { let ans = 0; for (let i of s) { if (!isNaN(i)) ans = ans * 10 + (+i); } return +ans; } //isNaN function solution(s) { let ans = ""; for (let i of.. 2021. 8. 17. [ 자바스크립트(JavaScript) ] 25 - 유효한 팰린드롬 📍 25 - 유효한 팰린드롬 주어진 문자열이 회문인지 판별하는 문제인데, 추가로 알파벳이외의 문자들은 무시한다. 마찬가지로 이전에 파이썬 알고리즘 인터뷰에서 한번 풀어본적이 있다. 알파벳이외의 값을 제거하는 방법으로 정규표현식(Reg)을 이용했다. let s = "found7, time: study; Yduts; emit, 7Dnuof"; console.log(solution(s)); function solution(s){ s = s.toLowerCase(); let notIncludeSpecialCharacter = s.replace(/[^a-z]/g, ''); let compareStr = notIncludeSpecialCharacter.split('').reverse().join(''); if (n.. 2021. 8. 17. [ 자바스크립트(JavaScript) ] 24 - 회문 문자열 📍 24 - 회문 문자열 이번 섹션은 문자열 탐색을 사용하여 문제를 푸는 섹션이다. 주어진 문자열이 회문인지 판별하는 문제다. 이전에 파이썬 알고리즘 인터뷰에서 한번 풀어본적이 있다. 마지막에 재귀로도 한번 풀어봤다. console.log(solution("gooog")); // split + reverse + join function solution(str){ if (str.split('').reverse().join('') !== str) return false; return true } console.log(solution("gooog")); // for function solution(str){ str = str.toLowerCase(); let n = str.length for (let i=0;.. 2021. 8. 17. 이전 1 ··· 14 15 16 17 18 19 20 ··· 55 다음