Algorithm - 수박문제

2207 단어 algorithmalgorithm

문제 설명
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

제한 조건
n은 길이 10,000이하인 자연수입니다.

🔵 내 풀이

function solution(n){
  let result;
if(n<=10000){
  if(n%2 === 0){
    result = ('수'+'박').repeat(n/2);
  } else {
    result = ('수'+'박').repeat(n/2)+'수';
  }
}
  return result;
}

🔴 참고 풀이

function waterMelon(n){
  var result = "수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박수박"
  //함수를 완성하세요

  return result.substring(0,n);
}

// 실행을 위한 테스트코드입니다.
console.log("n이 3인 경우: "+ waterMelon(3))
console.log("n이 4인 경우: "+ waterMelon(4))

🧱 리뷰

✔아쉬운 점 : substring에 대한 개념 확립이 안되어 있었고, 너무 복잡하게 생각했던 것 같다.
✔어려웠던 점 : 처음에 배열 변수에 '수', '박'을 넣고 문자를 반복하고 싶었는데, 문자형 데이터는 '곱셈'이 되지 않아서 for문을 사용해서 어찌어찌 반복을 해보려 하였으나 '수박' 이라는 두글자가 계속 함께 반복되어서 실패했다.
✔굳이 if문을 사용하지 않아도 간단하게 substring을 사용해서 간단하게 코드를 구현할 수 있구나!

📖 point
(1) 문자형 data type은 '+'를 제외한 사칙연산 불가
(2) repeat()이벤트 활용 : 문자열을 ()안의 횟수만큼 반복한다
(3) 문자열 객체 메서드 개념 재정리

  • [기본형] :
    var 변수명 = new String(문자열 데이터);
    배열은 객체 구분// 문자,숫자형 데이터는 객체 지정 구분 X
    배열 메서드는 배열에만, 문자열 메서드는 문자형 데이터에만 사용한다.
  • [문자열 객체 메서드] :
    charAt(숫자) : ()안의 숫자 인덱스에 저장된 문자를 반환
    indexOf(문자) : 문자열 왼쪽에서부터 가장 먼저 발견된”문자”의 인덱스값 반환
    indexOf(문자, 숫자) : 문자열 인덱스 번호(숫자)의 위치에서부터 제일 먼저 발견된 “문자”의 인덱스 값 반환
    lastIndexOf(문자) : 문자열 오른쪽에서부터 왼쪽 방향으로 가장 먼저 발견된 “문자”의 인덱스 값 반환
    match(문자) : 문자열 왼쪽에서부터 제일 먼저 발견된 “문자”와 일치되는 문자를 찾아서 반환
    search(문자) : 문자열 왼쪽에서부터 제일 먼저 발견된 “문자”의 인덱스 값 반환
    substr(숫자2,숫자1) : 문자열 인덱스 숫자2부터 글자수(숫
    자1)만큼의 글자 반환
    substring(숫자1,숫자2) : 인덱스 숫자1부터 숫자2 이전까지
    의 문자 반환
    toLowerCase() : 모두 소문자
    toUpperCase() : 모두 대문자
    length : 문자열의 문자 총 개수 반환(공백도 문자 취급),
    (인덱스 번호 +1)개

좋은 웹페이지 즐겨찾기