본문 바로가기

Front-End/Algorithm8

[알고리즘] 문자열 압축 ❓문자열 압축 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시 오. 단 반복횟수가 1인 경우 생략합니다. ▣ 입력설명 첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다. ▣ 출력설명 첫 줄에 압축된 문자열을 출력한다. ▣ 입력예제 1 KKHSSSSSSSE ▣ 출력예제 1 K2HS7E 💡문제풀이 function solution(s) { let answer = ""; let cnt = 1; s = s + " "; for (let i = 0; i < s.length - 1; i++) { if (s[i] === s[i + 1]) { cnt++ } else { answer.. 2021. 5. 22.
[알고리즘] 가장 짧은 문자거리 구하기 ❓ 입력받은 문자열과 문자가 있을 때, 문자를 기준으로 하는 가장 짧은 거리를 구하시오 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출 력하는 프로그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 문자열 s와 문자 t가 주어진다. 문자열과 문자는 소문자로만 주어집니다. 문자열의 길이는 100을 넘지 않는다. ▣ 출력설명 첫 번째 줄에 각 문자열 s의 각 문자가 문자 t와 떨어진 거리를 순서대로 출력한다. ▣ 입력예제 1 teachermode e ▣ 출력예제 1 10121012210 💡 문제풀이 function solution(s, t) { let answer = []; let p = 1000; for (let x of s) { if (x === t) { p =.. 2021. 5. 22.
[알고리즘] 숫자만 추출하기 ❓숫자만 추출하기 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205 이 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. ▣ 입력설명 첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다. ▣ 출력설명 첫 줄에 자연수를 출력합니다. ▣ 입력예제 1g0en2T0s8eSoft ▣ 출력예제 1208 💡 문제풀이 1. 정규식으로 대체하기 function solution(str) { let answer = ""; answer = str.toLowerCase().replace(/[a-z]/g, '') r.. 2021. 5. 20.
[알고리즘] 유효한 팰린드롬 ❓유효한 팰린드롬(회문 문자열)을 검사하시오 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다. 문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요. 단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다. 알파벳 이외의 문자들의 무시합니다. ▣ 입력설명 첫 줄에 정수 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다. ▣ 출력설명 첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다. ▣ 입력예제 1 found7, time: study; Yduts; emit, 7Dnuof ▣ 출력예제 1 YES 💡 문제 풀이 function solution(s) { let answer = "YES.. 2021. 5. 20.
[알고리즘] 회문 문자열 ❓ 회문 문자열을 찾아라 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다. 문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력 하는 프로그램을 작성하세요. 단 회문을 검사할 때 대소문자를 구분하지 않습니다. ▣ 입력설명 첫 줄에 정수 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다. ▣ 출력설명 첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다. ▣ 입력예제 1 gooG ▣ 출력예제 1 YES 💡 문제 풀이 1. for문을 이용해서 결과 도출 function solution(s) { let answer = "YES"; s = s.toLowerCase(); let len = s.length; for (le.. 2021. 5. 18.
[알고리즘] flag변수를 이용한 봉우리 개수 구하기 ❓봉우리 개수 구하기 지도 정보가 N*N 격자판에 주어집니다. 각 격자에는 그 지역의 높이가 쓰여있습니다. 각 격자 판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역입니다. 봉우리 지역이 몇 개 있는 지 알아내는 프로그램을 작성하세요. 격자의 가장자리는 0으로 초기화 되었다고 가정한다. 만약 N=5 이고, 격자판의 숫자가 다음과 같다면 봉우리의 개수는 10개입니다. ▣ 입력설명 첫 줄에 자연수 N이 주어진다.(1= 0 && ny = arr[i][j]) { flag = 0; // boolean false를 뜻함 break; } } if (flag) answer++; } } return answer; } let arr = [[5, 3, 7, 2, 3], [3,.. 2021. 5. 18.
[알고리즘]격자판 최대합 구하기 ❓ 격자판 최대합 구하기 5*5 격자판에 아래롸 같이 숫자가 적혀있습니다. [자바스크립트 알고리즘 문제풀이] N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력합 니다. ▣ 입력설명 첫 줄에 자연수 N이 주어진다.(1 2021. 5. 14.
[알고리즘]등수 구하기 N(1 1); // let answer = Array.from({ length: arr.length }, () => 1); 자바스크립트에서는 배열을 객체로 분류하고 있기 때문에, Array.from(배열, 함수)에서 배열의 길이를 받아온 arr.length로 정의하고 그것을 모두 1로 초기화 시켜주도록 하였습니다. 2021. 5. 14.