본문 바로가기
항해99/온보딩 스터디

[항해99] 온보딩 스터디 - 2주차 1일 TIL

by junvely 2023. 3. 13.

🦄 온보딩 스터디 2주차 1일 TIL

✨03/13 : 목표 : 알고리즘 1일차, 2일차, 3일차 풀이


📒알고리즘 풀이

1. 제곱수 판별하기

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

  • Math.sqrt(n) = > n의 제곱근을 반환한다.
  • Number.isInteger(a) = > 정수인지 확인하여 true false를 반환한다.

 

문제 접근)

1. n의 제곱근을 구하여 a에 할당한다.

2. a가 정수인지 검사하여 1 또는 2를 반환한다. => a가 정수로 떨어지면 제곱수이고, 소수 등 정수로 떨어지지 않을 경우 제곱수가 아니기 때문에

function solution(n) {
    // 1. 제곱근 구하기
    const a = Math.sqrt(n)
    // 2. 제곱근이 정수면 1 아니면 2
    return Number.isInteger(a) ? 1 :2
}

 

 

2. 특정 문자 제거하기

문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

  • replaceAll(문자열, 대체문자) => replace는 해당 문자열 한 개만 제거하지만 replaceAll은 해당 문자열 

 

문제 접근)

1. my_string에서 특정 문자 letter를 제거하기 위해 replace를 사용 => 첫번째 요소만 제거 가능하여 모든 문자를 제거하지 못함

2. 모든 letter 문자열을 제거하기 위해 => repalce가 아닌 replaceAll을 사용하여 중복되는 문자열 모두 제거

function solution(my_string, letter) {
    return my_string.replaceAll(letter, "");
}

 

 

3. 문자 반복 출력하기

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 접근)

1. 각 문자열을 순회

2.  순회 시 문자열의[i]번째를 *n번 반복한 문자열을 newString에 추가하기

3. 전부 추가된 문자 반환

function solution(my_string, n) {
    let newString = ""
    for(let i= 0; i < my_string.length; i++){
        newString += my_string[i].repeat(n)
    }
    return newString;
}

 

4. 모음 제거

영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

접근 방법)

my_string 문자열을 순회하면서 모음의 요소와 일치할 경우 replaceAll로 삭제 시킨 값을 newString에 업데이트 한다.

1. 모음 배열 생성 => ["a", "e", "i", "o", "u"]

2. 이중 for문 => my_string을 순회하여 각 문자열이 모음의 요소와 일치할 경우 replaceAll로 해당 문자 삭제 시키기

3. newString을 삭제된 문자열로 계속해서 업데이트 => 다시 newString에서 삭제 반복

function solution(my_string) {
   // 1. 모음 배열 생성
   const moum = ["a", "e", "i", "o", "u"];
    let newString = my_string;
    
    //2. my_string의 문자열을 순회하면서
    for (let a of my_string) {
      //3. 모음의 요소와 일치하면 replaceAll 하여 삭제 시키기
      for (let b of moum) {
        if (a === b) {
          //4. newString 값을 삭제된 값으로 계속해서 업데이트
          newString = newString.replaceAll(b, "");
        }
      }
    }
    return newString;
}

 

5. 문자열 안에 문자열

문자열 str1str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

  • string.includes(문자열) => string 안에 해당 문자열이 있는지 검사 후 true/false 반환

 

접근 방법)

str1에 str2가 있는지 검사하는 .includes() 메소드로 true/false에 따라 1과 2반환