Challenge 18

2-3 Challenge 문자열 요약

// 문제 3// 주어진 문자열을 요약하는 함수// str = "aaabbbc" // 출력 : "a3/b3/c1"// str = "ahhhz"   // 출력 : "a1/h4/z1"let stringSummary = string => {  let obj = {};  // 단어를 담을 객체  string.split("").forEach(element => {    // 문자열을 단어 배열로 변경    if (!obj[element]) obj[element] = 1;    // 단어가 객체에 없으면    // 단어를 key로, 1를 value로 생성    else obj[element]++;    // 단어가 존재하면 value 증가  });  let result = "";  Object.keys(obj).f..

Challenge 2024.08.20

2-2 Challenge 주어진 배열에서 [최솟값, 최댓값]

// 문제 2//주어진 배열에서 최솟값과 최댓값을 찾고,//[최솟값, 최댓값] 형태의 배열을 반환하는 함수를 작성하세요./* **제한사항:**- 배열의 길이는 1 이상 1000 이하입니다.- 배열의 원소는 -1000 이상 1000 이하의 정수입니다.*/let maxFunc = array => {  return Math.max(...array);  // 배열 요소에서 최댓값 생성};let minFunc = array => {  return Math.min(...array);  // 배열 요소에서 최솟값 생성};let minMaxFunc = array => {  return [minFunc(array), maxFunc(array)];};let arr = Array.from(  { length: Math.fl..

Challenge 2024.08.20

2-1 Challenge 문자열에서 중복 제거

// 문제 1// 주어진 문자열에서 중복된 문자를 제거하고, 남은 문자들을 원래 순서대로 반환하는 함수를 작성하세요./***제한사항:**- 문자열의 길이는 1 이상 1000 이하입니다. */let result = string => {  let temp = new Set(string);  //중복이 없는 문자 배열 생성  console.log(temp);  return [...temp].join("");  //배열 안의 내용을 문자열로 변환};console.log(result("abbccdeff"));

Challenge 2024.08.20

1-5 Challenge 자리 수 제거 후 가장 큰 수

// 문제 5// 양의 정수가 주어질 때,// 숫자에서 k개의 자릿수를 제거하여 얻을 수 있는 가장 큰 수를 구하세요./***제한사항:**- **`number`**는 최대 1,000,000자리까지 입력될 수 있습니다.- **`k`**는 1 이상 **`len(number)`** - 1 이하입니다.*/let maximumSliceNumber = (number, k) => {  let max = [];  number = number.toString();  for (let i = 0; i number.length - k + 1; i++) {    max.push(number.substring(i, i + k));  }  return Math.max(...max);};console.log(maximumSlice..

Challenge 2024.08.19

1-3 Challenge 문자열 역순 배치 및 알파벳 하나씩 오른쪽으로 이동

let stringReverse = string => {  return string    .split("")    .reverse()    .map(element => {      const Ask = element.toLowerCase().charCodeAt();      if (Ask >= 97 && Ask 122)        return String.fromCharCode(((Ask - 97 + 1) % 26) + 97);    })    .join("");};console.log(stringReverse("hello")); 매개변수로 전달 받은 문자열을  split("") 으로 단어 마다 쪼갠 배열로 만들어준다.배열에는 reverse() 라는 함수가 있기 때문에 단어 모음 배열.reverse(..

Challenge 2024.08.19

1-2 Challenge [ 짝수 개수, 홀수 개수]

제출한 코드 :  // 문제 2// 주어진 배열에서 짝수와 홀수의 개수를 각각 세는 함수를 작성하세요.// 함수는 [짝수 개수, 홀수 개수]의 배열을 반환해야 합니다./***제한사항:**- 배열의 길이는 1 이상 1000 이하입니다.- 배열의 원소는 1 이상 1000 이하의 자연수입니다.*/let even = array => {  return array.filter(element => {    return element % 2 == 0;  }).length;};let odd = array => {  return array.filter(element => {    return element % 2 == 1;  }).length;};let evenOdd = array => {  return [even(arr..

Challenge 2024.08.19

1-1 Challenge 최소 공약수와 최대 공배수

//문제1//두 자연수 a와 b가 주어질 때,이 둘의 최대공약수를 구하는 함수를 작성하시오.let leastCommonDivisor = (a, b) => {  let temp = null;  if (a b) {    temp = b;    b = a;    a = temp;  }  do {    temp = a % b;    a = b;    b = temp;  } while (temp != 0);  return a;  //유클리드 호제법을  //이용한 풀이};let greatestCommonMultiple = (a, b) => {  let least = leastCommonDivisor(a, b);  return (a * b) / least;  // 두 수 곱하기 / 최소 공약수 = 최대 공배수};l..

Challenge 2024.08.19