온보딩 커리큘럼 알고리즘 2일 차

역 문자열

문제 설명

문자열 my_string이 매개변수로 전달됩니다.

solve 함수를 완성하여 my_string을 반전시키는 문자열을 반환합니다.


제한

  • 1 ≤ my_string 길이 ≤ 1,000

I/O 예시

my_string 뒤로

“야론” “노라이”
“빵” “다브”

I/O 예시 설명

I/O 예제 #1

  • my_string은 “jaron”이므로 역으로 “noraj”를 반환합니다.

I/O 예제 #2

  • my_string은 “bread”이므로 반대로 “daerb”를 반환합니다.

function solution(my_string) {
  return my_string.split('').reverse().join('')
}
function solution(my_string) {
  const arr = (...my_string);
  let newArr = ();
  for (let i = my_string.length - 1; i >= 0; i--) {
    newArr.push(arr(i));
  }
  return newArr.join("");
}

console.log(solution("jarcon"))

문제 설명

문자열 my_string과 문자 letter가 매개변수로 전달됩니다.

my_string에서 문자가 제거된 문자열을 반환하도록 solve 함수를 완료합니다.


제한

  • 1 ≤ my_string 길이 ≤ 100
  • letter는 길이가 1인 영문자입니다.

  • my_string과 letter는 대문자와 소문자입니다.

  • 대문자와 소문자가 구분됩니다.


I/O 예시

문자 my_string의 결과

“abcdef” “에프” “에이 비 씨 디이”
“BCBdbe” “비” “cdbe”

I/O 예시 설명

I/O 예제 #1

  • “abcdef”에서 “f”가 제거된 “abcde”를 반환합니다.

I/O 예제 #2

  • “BCBdbe”에서 모든 “B”가 제거된 “Cdbe”를 반환합니다.

function solution(my_string, letter) {
  let arr = my_string.split('')
  return arr.filter((i) => i !
== letter).join('') }


특정 문자 제거

문제 설명

매개변수로 문자열 my_string과 정수 n이 주어지면 my_string의 각 문자가 n회 반복되는 문자열을 반환하도록 solve 함수를 완성합니다.


제한

  • 2 ≤ my_string 길이 ≤ 5
  • 2 ≤ n ≤ 10
  • “my_string”은 영문 대문자와 소문자로 구성됩니다.


I/O 예시

my_string n 결과

“안녕하세요” “으으으으으으으으”

I/O 예시 설명

I/O 예제 #1

  • “hello”의 각 문자가 세 번 반복되는 “hhheelllllloo”를 반환합니다.

대답 1

function solution(my_string, n) {
  const arr = my_string.split('')
  let newArr = arr.map((e) => e.repeat(n))
  return newArr.join('')
}

답변 2

function solution(my_string, n) {
  const arr = my_string.split('')
  let newArr = arr.map((e) => repeat(e, n))
  return newArr.join('')
}
function repeat(e, n) {
  let temp = ''
  for (i = 0; i < n; i++) {
    temp += e
  }
  return temp
}


텍스트 반복 인쇄

문제 설명

할머니에게 생일 편지를 쓸 거예요. 할머니가 편하게 보실 수 있도록 한 글자 한 글자를 2cm 폭으로 쓰려고 해요. 가로로만 쓰실 경우 축사 작성에 필요한 최소 가로 레터헤드 길이를 반환하기 위해 solve 함수를 채워주세요.


제한

  • 공백도 단일 문자로 취급됩니다.

  • 1 ≤ 메시지 길이 ≤ 50
  • 나는 편지지의 가장자리에 대해 생각하지 않습니다.

  • 메시지는 영문 대소문자, ‘!
    ’, ‘~’ 또는 공백으로만 구성됩니다.


I/O 예시

메시지 결과

“생일 축하해요!
30
“사랑해~” 22

I/O 예시 설명

I/O 예제 #1

  • 메시지의 문자 수는 15자이며 레터헤드의 최소 너비는 30cm입니다.

I/O 예제 #2

  • 메시지의 문자 수는 11자이고 레터헤드의 최소 너비는 22cm입니다.

function solution(message) {
  return message.length * 2
}

모음을 제거하다

문제 설명

영어에서는 a, e, i, o, u 다섯 글자를 모음으로 분류합니다.

my_string 문자열이 매개변수로 주어졌을 때 모음이 제거된 문자열을 반환하도록 solve 함수를 완성하십시오.


제한

  • my_string은 소문자와 공백으로 구성됩니다.

  • 1 ≤ my_string 길이 ≤ 1,000

I/O 예시

my_string 결과

“버스” “비”
“만나서 반가워요” “엔티엠티”

I/O 예시 설명

I/O 예제 #1

  • “bus”에서 모음 u가 제거된 “bs”를 반환합니다.

I/O 예제 #1

  • “만나서 반갑습니다”에서 모든 모음 i, o, e 및 u가 제거된 “nc t mt y”를 반환합니다.

function solution(my_string) {
  return my_string.replace(/a|e|i|o|u/g, '')
}

문자열 대 문자열

문제 설명

문자열 str1 및 str2는 매개변수로 전달됩니다.

str2가 str1에 있으면 2를 반환하도록 solve 함수를 완성합니다.


제한

  • 1 ≤ str1의 길이 ≤ 100
  • 1 ≤ str2의 길이 ≤ 100
  • 문자열은 대문자, 소문자 및 숫자로 구성됩니다.


I/O 예시

str1 str2 결과

“ab6CDE443fgh22iJKlmn1o” “6CD” 하나
“ppprrgrammer” “ppp” 2
“AbcAbcA” “아아아” 2

I/O 예시 설명

I/O 예제 #1

  • “ab6CDE443fgh22iJKlmn1o” str2가 str1에 있기 때문에 1을 반환합니다.

I/O 예제 #2

  • ppprrrogrammers가 str1에 str2를 포함하지 않기 때문에 2를 반환합니다.

I/O 예제 #3

  • “AbcAbcA” str1이 str2를 포함하지 않기 때문에 2를 반환합니다.

function solution(str1, str2) {
  return str1.includes(str2) ? 1 : 2
}

알고리즘 작업을 하면서 방법을 찾고 풀고 있었는데 팀원들이 명제에 따라 돌리는 등 다른 방법을 생각하고 있었고, 나도 그런 생각을 하고 있었는데, 다양한 방법을 알아가는 것이 좋았다.

그리고 이전에 풀었던 문제인데 다시 풀지 못한 문제였습니다.

텍스트를 반복해서 출력하는 방식으로 구성되어 있었는데 미리 친구가 설명을 했더니 반복 방식을 모르면 함수로 어떻게 쓰는지 알아야 하니까 이해가 안 되는 부분이 생각나서, 그래서 예전에 풀었던 답을 드디어 보고 드디어 알았습니다… 아직 기초가 많이 부족합니다.

.