2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

Lv0 JS 프로그래머스 #24 - 배열 만들기 1, 주사위 게임 1, rny_string

2023. 9. 4. 14:45ㆍ프로그래머스 JS 코딩테스트
반응형

73. 배열 만들기 1

 

문제 설명

  • 정수 n과 k가 주어졌을 때, 1 이상 n이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

제한사항

  • 1 ≤ n ≤ 1,000,000 1 ≤ k ≤ min(1,000, n)

입출력 예시

  • 1 이상 10 이하의 3의 배수는 3, 6, 9 이므로 [3, 6, 9]를 return 합니다.
  • 1 이상 15 이하의 5의 배수는 5, 10, 15 이므로 [5, 10, 15]를 return 합니다.

풀이

const solution = (n, k) => {
    let result = [];
    for(let i = 1; i <= n; i++){
        if(i%k === 0){
            result.push(i);
        }
    }
    return result.sort((a,b) => a-b);
}

// 새로운 빈 배열 result 선언
// i는 1부터, n이하 까지의 수
// 만약 k로 나누엇을 때 나머지가 0이면 i는 k의 배수
// sort() 메서드를 이용하여 오름차순으로 정렬

 

74. 주사위 게임 1

 

문제 설명

  • 1부터 6까지 숫자가 적힌 주사위가 두 개 있습니다. 
  • 두 주사위를 굴렸을 때 나온 숫자를 각각 a, b라고 했을 때 얻는 점수는 다음과 같습니다. 
  • a와 b가 모두 홀수라면 a^2 + b^2 점을 얻습니다. a와 b 중 하나만 홀수라면 2 × (a + b) 점을 얻습니다. 
  • a와 b 모두 홀수가 아니라면 |a - b| 점을 얻습니다. 
  • 두 정수 a와 b가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.

제한사항

  • a와 b는 1 이상 6 이하의 정수입니다.

입출력 예시

  • 예제 1번에서 두 주사위 숫자가 모두 홀수이므로 32 + 52 = 9 + 25 = 34점을 얻습니다. 따라서 34를 return 합니다.
  • 예제 2번에서 두 주사위 숫자 중 하나만 홀수이므로 2 × (6 + 1) = 2 × 7 = 14점을 얻습니다. 따라서 14를 return 합니다.
  • 예제 3번에서 두 주사위 숫자가 모두 홀수가 아니므로 |2 - 4| = |-2| = 2점을 얻습니다. 따라서 2를 return 합니다.

풀이

const solution = (a, b) => {
    if(a*b % 2 === 1) return a*a + b*b;
    else if(a%2 === 1 || b%2 ===1) return 2*(a+b);
    else return Math.abs(a-b);
}

// a와 b 모두 홀수이면 각 제곱의 합
// a또는 b 둘 중 하나가 홀수이면 합한 후 2배
// 모두 짝수이면 a-b의 절대값

 

75. rny_string

문제 설명

  • 'm'과 "rn"이 모양이 비슷하게 생긴 점을 활용해 문자열에 장난을 하려고 합니다. 문자열 rny_string이 주어질 때, rny_string의 모든 'm'을 "rn"으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ rny_string의 길이 ≤ 100 
  • rny_string은 영소문자로만 이루어져 있습니다.

입출력 예시

  • 예제 1번의 rny_string의 'm'을 "rn"으로 바꾸는 과정을 표로 나타내면 다음과 같습니다.

  • 따라서 "rnasterpiece"를 return 합니다.
  • 예제 2번의 rny_string의 'm'을 "rn"으로 바꾸는 과정을 표로 나타내면 다음과 같습니다.

  • 따라서 "prograrnrners"를 return 합니다.
  • 예제 3번의 rny_string에는 'm'이 없습니다. 따라서 rny_string 그대로인 "jerry"를 return 합니다.
  • 예제 4번의 rny_string에는 'm'이 없습니다. 따라서 rny_string 그대로인 "burn"를 return 합니다.

풀이

const solution = rny_string => { 
    return rny_string.replace(/m/g, "rn")
}

// replace() 메서드를 통해 문자열의 문자 교체
// replace() 메서드는 첫 번째 문자만 변환하기 때문에 정규표현식 g 플래그를 함께 사용

 

  • 정답률 높은 순부터 풀이
  • 매일 3 문항 풀이
반응형