에브리 저장소

[Codewars - 7 kyu] Mumbling 본문

자료구조 · 알고리즘

[Codewars - 7 kyu] Mumbling

eblee 2020. 1. 15. 16:16

문제 링크

 

이 문제는 설명이 없습니다.(?)

accum이라는 메서드에 문자열 인자를 넣었을 때의 출력 값 예시를 보여주고 동일하게 동작하도록 구현하는 문제입니다. 규칙을 찾아내기 어려운 문제는 아니었습니다.

 

accum("abcd") -> "A-Bb-Ccc-Dddd"
accum("RqaEzty") -> "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
accum("cwAt") -> "C-Ww-Aaa-Tttt"

 

규칙을 분석하면 각 글자들의 순서만큼 해당 글자를 나열하고, 제일 앞일 때는 대문자가 됩니다.

그리고 이 문자들은 '-' 로 연결된다. 정리하면 다음과 같습니다.

 

  1. 입력받은 문자열을 한 글자씩 나눠 배열을 만든다.
  2. 각 글자마다 대문자, 소문자를 만들어 저장합니다.
  3. 반환할 변수에 대문자를 더해줍니다.
  4. 순서만큼 소문자를 더해줍니다.
  5. 새로운 글자를 반환합니다.
  6. 모든 요소를 처리 후 각 요소를 '-'로 합쳐 문자열을 반환합니다.

풀이 코드는 더보기 버튼을 눌러주세요.

더보기
const accum = text => text.split('').map((char, idx) => {
  let newChar = '';
  const upper = char.toUpperCase();
  const lower = char.toLowerCase();
  newChar += upper;
  while(idx--) {
    newChar += lower
  }
  return newChar;
}).join('-');

 

 

 

 

Comments