[JS]_daily coding #10

seul·2022년 6월 7일
0

Algorithm

목록 보기
9/31

코플릿 데일리코딩 9번 문제_ABCheck


수도코드

  1. str을 입력받음(대문자 소문자 섞여있음)
  2. str의 모든 문자를 소문자로 변환한 새로운 문자열을 반환
  3. 반복문을 순회하면서
  4. 조건문(i번째 인덱스가 'a'이고 i+4번째 인덱스가 'b'이거나 i번째 인덱스가 'b'이고 i+4번째 인덱스가 'a'인 경우)을 만족하는 경우 true 반환
  5. 반복문을 빠져나와 (반복문 안에 조건문을 만족하지 못한 모든 경우) false 반환

첫번째 코드

반복문을 순회하는 i를 str의 길이 -4로 이하로 해서 문자열 길이 안에서 비교가 이루어지도록 했다.

function ABCheck(str) {
  str = str.toLowerCase()

  for (let i = 0; i < str.length-4 ; i++) {
    if(
      (str[i] === 'a' && str[i+4] === 'b')||
      (str[i] === 'b' && str[i+4] === 'a')
    ){
      return true
    } 
  }
  return false
}

두번째 코드

레퍼런스 코드를 보니까 반복문을 순회하는 i를 4로 초기화해서 i-4번째 인덱스를 함께 비교했다.

function ABCheck(str) {
  if (str === undefined) {
    return false;
  }

  str = str.toLowerCase();

  for (let i = 4; i < str.length; i++) {
    if (
      (str[i] === 'a' && str[i - 4] === 'b') ||
      (str[i] === 'b' && str[i - 4] === 'a')
    ) {
      return true;
    }
  }

  return false;
}

프로그래머스 Lv.1_x만큼 간격이 있는 n개의 숫자

문제 설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

제한 조건
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.


수도코드

  1. 결과 배열 선언
  2. 0번째 인덱스에는 x를 담아주고
  3. 반복문을 1부터 n까지 순회하면서
  4. 1번째 인덱스에는 x + x, 2번째 인덱스에는 x + x + x, ...를 담아준다
  5. 결과 배열 반환

첫번째 코드

function solution(x, n) {
    const answer = [];
    answer[0] = x; 
    for (let i = 1; i < n ; i++) {
        answer[i] = answer[i-1] + x;
    }
    return answer;
}

두번째 코드

  1. 결과 배열 선언
  2. 반복문을 1부터 n까지 순회하면서
  3. 0번째 인덱스에는 x * 1, 1번째 인덱스에는 x * 2...를 추가해준다.
  4. 결과 배열 반환
function solution(x, n) {
    const answer = [];
    for (let i = 1; i <= n ; i++) {
        answer.push(x*i)
    }
    return answer;
}

세번째 코드

배열 메소드를 사용한 다른 사람들의 코드를 보니 훨씬 간결해서 참고했다.

function solution(x, n) {
    return Array(n).fill(x).map((value, index) => value * (index+1))
}

remind

arr.fill(value[, start[, end]])

  • 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채운 배열을 반환

arr.map(callback(currentValue[, index[, array]])[, thisArg])

  • 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환
profile
Connecting dots

0개의 댓글