본문 바로가기

알고리즘/인프런8

[JS] - 문자열 압축 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법 단 ,1인 경우 생략 내가 푼 코드 생각보다 어려웠다.... 온갖 구글링 및 강의를 듣고 내가 풀수있는 방법을 동원해서 풀어보았다. 정규표현식에 대해 공부를 하고나니 코드를 짤때도 유용하게 이용하는 거 같다. function solution(str) { let answer = ""; let cnt = 1; for (let i = 0; i < str.length; i++) { if (str[i] === str[i + 1]) { cnt++; } else { answer += str[i] + cnt; cnt = 1; } } answer = answer.match(/[^1]/g).. 2022. 3. 25.
[JS] - 봉우리의 개수는 몇개인가? N*N 격자판에 그 지역의 높이가 쓰여있다. 각 격자판의 숫자 중 자신의 상하좌우보다 큰 숫자를 봉우리지역이라 한다. 봉우리 지역이 몇개인가? 와후...... 이건 뭐 보자마자 아..... 무슨 말인지 1도 모르겠다!!!!!! 일단 주어진 봉우리를 살펴보자 let arr = [ [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], ]; 방금 앞에서 했던 격자판과는 달랐다. 이것은 그냥 상하좌우를 다 비교하면서 만약에 자기보다 큰게 하나라도 존재하지않는 것을 찾아야하는 문제이다. 그냥 어렵다 바로 문제풀이가자 상하좌우의 index를 구해야할때 기준이 0,0 이라면 ? -1, 0 0 ,-1 0 , 0 0 , 1.. 2022. 3. 16.
[JS] - 격자판의 최대합 구하기 주어진 이차원 배열에서 가로, 세로, 대각선의 합을 구해서 가장 큰 값을 출력하는 알고리즘 // 주어진 배열 let arr = [ [10, 13, 10, 12, 15], [12, 39, 30, 23, 11], [11, 25, 50, 53, 15], [19, 27, 29, 37, 27], [19, 13, 30, 13, 19], ]; 주어진 배열에 가로, 세로 , 대각선의 합을 구하여서 가장 큰 합을 구하라고 한다.... 이게 도대체 무슨...????? 대략 처음에 문제를 파악할 때는 일단 이중for문을 써야할 거 같다. 그러면 처음에 내가 짠 코드를 보자 . function solution(arr){ let answer = 0; let n = arr.length ; let sum = 0; for(let i.. 2022. 3. 15.
[알고리즘] - 중복 문자 제거 중복 문자 제거 풀이 function solution(s) { let answer = ""; for (let x in s) { //console.log(Number(x), s[x], s.indexOf(s[x])); if (Number(x) === s.indexOf(s[x])) { answer += s[x]; } } return answer; } console.log(solution("ksekkset")); -> for... in 문을 사용하면 안의 인덱스 번호와 해당 문자를 알수있다 //console.log(Number(x), s[x], s.indexOf(s[x])); 를 이용하여 콘솔창을 보면 //(Number(x), s[x], s.indexOf(s[x])) 0 k 0 1 s 1 2 e 2 3 k 0 .. 2022. 3. 10.
[알고리즘] - 가장 긴 문자열 찾기 n개의 문자열이 입력된 배열안에서 가장 긴 문자열을 출력하라 function solution(s) { let answer = ""; let maxLength = Number.MIN_SAFE_INTEGER; for (let i = 0; i < s.length; i++) { if (maxLength < s[i].length) { maxLength = s[i].length; answer = s[i]; } } //answer = maxLength; return answer; } let str = ["teacher", "time", "student", "beautiful", "good"]; console.log(solution(str)); // 결과값 // beautiful 출처 - 인프런 : 자바스크립트 알고리.. 2022. 3. 10.
[알고리즘] - 문자 찾기 및 대소문자 관련 기초 알고리즘 대소문자를 활용한 간단한 알고리즘 해당 강의에서 주어진 자료에서 답을 안보고 미리풀어 보았다. 아직 섹션1 부분이라 크게 어렵지는 않았다. 입력받은 문자열이 몇개 존재하는지 function solution(s , t){ let result = 0; for (x of s){ if(x === t){ result ++; } } return result; } let str = "qwerasdfttgvshhgzs"; console.log(solution(str , 'g')); 대문자가 몇개 존재하는지 출력하는 알고리즘 function solution(s){ let result = 0; // 1. for문을 이용한 방법 for (let i = 0 ; i < s.length ; i ++){ if(s[i] === s[.. 2022. 3. 7.
728x90
반응형