[CodeKata JS] Jumping Dutch act

ryan·2021년 2월 17일
0

CodeKata JS

목록 보기
1/26
post-thumbnail

Task

절망 씨는 뛰어 내리고 싶어서 건물 꼭대기에 왔습니다.

과학적 연구에 따르면 한 남자가 지붕 꼭대기에서 뛰어 내렸을 때, 바닥이 6개 이상이면 즉각적으로 죽게된다고 합니다. 반면에, 바닥이 6개 보다 적거나 같으면 그 사람은 바로 죽지 않고, 비명을 지른다고 합니다.

  • Input(입력): floor, 건물의 높이(층, floor)
  • Output(출력): 문자열, 절망의 목소리 (점프할 때)

Initial Setting

function sc(floor){
  return ?
}

Example

sc(2)는 "Aa~ Pa! Aa!"를 리턴해야합니다.

이 말은 즉,

절망 씨가 2층에서 뛰어 내렸고 목소리는 "Aa~"
그는 땅에 쓰러졌고, 목소리는 "Pa!"
그는 즉시 죽지 않았고, 마지막 목소리는 "Aa!"

sc(6)은 "Aa~ Aa~ Aa~ Aa~ Aa~ Pa! Aa!"을 리턴해야합니다.
sc(7)은 "Aa~ Aa~ Aa~ Aa~ Aa~ Aa~ Pa!"을 리턴해야합니다.
sc(10)은 "Aa~ Aa~ Aa~ Aa~ Aa~ Aa~ Aa~ Aa~ Aa~ Pa!"을 리턴해야합니다.

만약, floor <= 1이라면, 절망 씨는 안전합니다. ""을 리턴하세요.

My Solution

function sc(floor) {
  let voice = '';
  if (floor <= 1) return '';
  else if (floor < 7) {
    for (let i = 1; i <= floor - 1; i++) {
      voice += 'Aa~ ';
    }
    voice += 'Pa! ';
    voice += 'Aa!';
    return voice;
  } else {
    for (let i = 1; i <= floor - 1; i++) {
      voice += 'Aa~ ';
    }
    voice += 'Pa!';
    return voice;
  }
}

Solution 1 of Another User

function sc(floor) {
  if (floor <= 1) return "";
  
  return 'Aa~ '.repeat(floor - 1) + 'Pa!' + (floor <= 6 ? ' Aa!: ''); 

Solution 2 of Another User

function sc(floor) {
  if (floor <= 1) return "";
  var SCREAM = "";
  for (let i = 0; i < floor - 1; i++) {
    SCREAM += "Aa~ ";
  }
  SCREAM += "Pa!";
  if (floor <= 6) SCREAM += " Aa!";
  return SCREAM;
}

Solution 3 of Another User(???)

const sc = floor => floor > 1 ? Array.from({length: floor - 1}, () => "Aa~").concat(floor > 6 ? ["Pa!"] : ["Pa!", "Aa!"]).join(" ") : "";

링크

profile
👨🏻‍💻☕️ 🎹🎵 🐰🎶 🛫📷

0개의 댓글