Algorithm137 [완전탐색] 자릿수의 합 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 N개의 자연수가 입력되면 각 자연수의 자릿수 합을 구하고 그 합이 최대인 자연수를 출력한다. 자릿수의 합이 같은 경우 기존 자연수가 큰 수가 답이 된다. 만약 236과 1235가 있다면 이 둘의 자릿수 합은 11로 동일하지만 1235가 더 큰 수 이므로 1235가 답이 된다. 👉 입력 N개의 자연수가 주어진다. 👈 출력 자릿수의 합이 최대인 자연수를 출력한다. 📝 풀이 function solution(arr) { let answer = 0, max = Number.MIN_SAFE_INTEGER; let temp; for (const a of arr) { temp = 0; for (const s of String(a)) { temp +.. 2021. 12. 13. [문자열탐색] 문자열 압축 https://cansweep.tistory.com/219 [문자열탐색] 문자열 압축 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자의 바로 오른쪽에 cansweep.tistory.com 위 문제를 다시 python을 이용해 풀어보았다. 💡 사용된 개념 re.sub() string에서 pattern을 repl로 변환한 문자열을 반환한다. re.sub(pattern, repl, string, count=0, flags=0) pattern : 찾을 패턴 repl : 대체할 문자열 string : 주어진 문자열 📝 풀이 import re answer = "" s = "KKHSSSSSSEE" co.. 2021. 12. 10. [문자열탐색] 문자열 압축 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자의 바로 오른쪽에 반복 횟수를 표기한다. 위와 같은 방법으로 주어진 문자열을 압축해 출력한다. 단, 반복 횟수가 1인 경우 생략한다. 👉 입력 길이가 100을 넘지 않는 문자열이 주어진다. 👈 출력 압축된 문자열을 출력한다. 📝 풀이 function solution(s) { let answer = ""; let count = 1; for (let i = 0; i < s.length; i++) { if (s[i] === s[i + 1]) { count++; } else { answer += s[i] + `${count}` count = 1; } .. 2021. 12. 10. [문자열탐색] 가장 짧은 문자거리 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소 거리를 출력한다. 👉 입력 길이가 100을 넘지 않는 문자열 s와 문자 t가 주어진다. 문자열과 문자는 소문자로 이루어진다. 👈 출력 문자열 s의 각 문자가 문자 t와 떨어진 최소 거리를 순서대로 출력한다. 📝 풀이 function solution(s, t) { let answer = []; let pos = s.indexOf(t); let arr_pos = []; let distance = []; while (pos !== -1) { arr_pos.push(pos); pos = s.indexOf(t, pos + 1) } for (let i = 0.. 2021. 12. 10. [문자열탐색] 숫자만 추출 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 문자와 숫자가 섞여있는 문자열이 주어지면 그중 숫자만 추출하여 그 순서대로 자연수를 만들어 출력한다. 만약 입력으로 "su7bywv1ie3"이 주어진다면 이 문자열에서 숫자는 7, 1, 3이고 이것을 자연수로 만들면 713이 된다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않는다. 👉 입력 길이가 50을 넘지 않는 숫자가 섞인 문자열이 주어진다. 👈 출력 자연수를 출력한다. 💡 사용된 개념 isNaN() 어떤 값이 NaN인지 판별한다. 인자로 들어온 수가 NaN이라면 true, 아니면 false를 반환한다. 여기서 NaN은 Not A Number로 숫자가 아닌 문자를 나타낸다. 📝 풀이 function solution.. 2021. 12. 10. [문자열탐색] 유효한 팰린드롬 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 한다. 문자열이 입력될 때, 해당 문자열이 팰린드롬이면 "YES"를, 아니면 "NO"를 출력한다. 단, 팰린드롬 검사시 알파벳만 가지고 회문을 검사하며 대소문자를 구분하지 않는다. (알파벳 이외의 문자들은 무시한다.) 👉 입력 길이 100을 넘지 않는 문자열이 주어진다. 👈 출력 검사 결과를 "YES" 혹은 "NO"로 출력한다. 📝 풀이 function solution(s) { let answer = "YES"; s = s.toLowerCase().replace(/[^a-z]/ig, ''); if (s.split('').reverse().join('') !== s) an.. 2021. 12. 10. [문자열탐색] 회문 문자열 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 한다. 문자열이 입력으로 들어왔을 때 해당 문자열이 회문 문자열이라면 "YES"를, 아니면 "NO"를 출력한다. 단 회문을 검사할 때 대소문자를 구분하지 않는다. 👉 입력 길이 100을 넘지 않고 공백이 없는 문자열이 입력된다. 👈 출력 회문 문자열인지의 결과를 "YES" 또는 "NO"로 출력한다. 💡 사용된 개념 String.split() String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다. 반환값은 구분자마다 끊은 부분 문자열을 담은 배열이다. str.split([separator[, limit]]) separator : 원본 문자열을 끊어야 .. 2021. 12. 9. [배열탐색] 봉우리 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 지도의 정보가 N*N 격자판에 주어지고 각 격자에는 그 지역의 높이가 쓰여있다. 각 격자판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역이다. 지도의 정보가 주어지면 봉우리 지역의 개수를 출력한다. 만약 N = 5이고 지도의 정보가 다음과 같다면 봉우리는 표시된 것과 같고 개수는 10개이다. 5 4 7 2 3 3 7 1 6 1 7 2 5 3 4 4 3 6 4 1 8 7 3 5 2 👉 입력 N줄의 걸쳐 N개의 자연수가 주어진다. 각 자연수는 100을 넘지 않는다. 👈 출력 봉우리의 개수를 출력한다. 📝 풀이 function solution(arr) { let answer = 0; let n = arr.length; let .. 2021. 12. 9. [배열탐색] 격자판 최대합 자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가장 큰 수를 출력한다. 👉 입력 N줄에 걸쳐 N개의 자연수가 주어진다. 각 자연수는 100을 넘지 않는다. 👈 출력 최대 합을 출력한다. 📝 풀이 function solution(arr) { let n = arr.length; let sum_row = sum_col = sum_diag1 = sum_diag2 = 0; let sums = []; for (let i = 0; i < n; i++) { sum_row = sum_col = 0; for (let j = 0; j < n; j++) { if (i === j) sum_diag1 += arr[i][j]; if.. 2021. 12. 9. 이전 1 ··· 9 10 11 12 13 14 15 16 다음