[Lv.1]수박수박수?(☆☆)

Jihyun-Jeon·2022년 4월 27일
0

https://programmers.co.kr/learn/courses/30/lessons/12922
체감 난이도:☆☆ (String메서드 공부하기)

🔶 내가 한 방법

  • 인덱스 값이 홀수면 "박", 짝수면 "수"를 넣기 위해 배열을 활용하기로 함.
function solution(num) {
  const arr = Array(num).fill('_');
  const watermelon = arr.map((el, idx) => (idx % 2 ? '박' : '수'));
  return watermelon.join('');
}

console.log(solution(3)); // "수박수"
console.log(solution(4)); // "수박수박"

🔶 다른 사람 방법

  • 방법1 - string메서드인 repeat메서드 이용
function solution(num) {
  return '수박'.repeat(num / 2) + (num % 2 ? '수' : '');
} 
  • 방법2
function solution(num) {
  // return '수박'.repeat(num).substring(0, num);
  return '수박'.repeat(num).slice(0, num);
}

🔶 피드백

  1. repeat 메서드의 존재를 몰랐음. String 메서드 공부하기!

String.prototype.repeat()

  • 정의 - 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환함.
  • 형태 - str.repeat(count);
  • 반환값 - 주어진 횟수만큼 반복해 붙인 새로운 문자열.
  • 사용 예제
'abc'.repeat(-1);   // RangeError ← 음수는 안됨
'abc'.repeat(0);    // ''
'abc'.repeat(1);    // 'abc'
'abc'.repeat(2);    // 'abcabc'
'abc'.repeat(3.5);  // 'abcabcabc' ← 정수로 바뀜(3)
'abc'.repeat(1/0);  // RangeError ← 무한은 안됨

String.prototype.substring() (string.slice와 비슷)

  • 정의 - 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환함.
  • 형태
    - str.substring(indexStart[, indexEnd]) ( 마지막 인덱스는 미포함)
    - 만약 indexStart 가 indexEnd보다 큰 경우, 두 개의 인자가 바뀌게 됨.
  • 반환값 - 부분 문자열을 반환함.
  • 사용 예제
const anyString = 'Mozilla';

// Displays 'M'
console.log(anyString.substring(0, 1)); // M
console.log(anyString.substring(1, 0)); // M (0,1)과 같음

// Displays 'Mozill'
console.log(anyString.substring(0, 6)); // Mozill

// Displays 'lla'
console.log(anyString.substring(4)); // lla
console.log(anyString.substring(4, 7)); // lla
console.log(anyString.substring(7, 4)); // lla (4,7)과 같음

// Displays 'Mozilla'
console.log(anyString.substring(0, 7)); // Mozilla
console.log(anyString.substring(0, 10)); // Mozilla

0개의 댓글