프로그래머스 | Lv.2_연습문제_Part.2_JS

김명성·2021년 11월 30일
0

Algorithm

목록 보기
55/61
post-thumbnail

난이도 : Level. 2
언어 : Javascript
출제 내역 : 연습문제

전체 풀이 코드 👈🏻 클릭시 Github로 이동

❓ Question 1

JadenCase 문자열 만들기

  • 문장에서 첫번째 글자를 대문자로 변경하자

📝 My Solution 1

function solution(s) {
    const newArr = s.toLowerCase().split('');
    let answer = newArr[0].toUpperCase();
        for (let i = 1; i<newArr.length; i++) {
            if (newArr[i] === ' ') {
                if (newArr[i+1] === ' ') {
                    answer = answer+newArr[i]
                    continue;
                } else {
                    newArr[i+1] = newArr[i+1].toUpperCase()
                    answer = answer+newArr[i]
                }
            } else {
                answer = answer+newArr[i]
            }
        }
    return s[s.length-1] === " " ? answer + " " : answer
}

원래는 띄어쓰기 다음에 있는 글자를 대문자로 변경하는 코드를 작성했는데
8번 테스트에서 런타임 에러가 떠서 다른 솔루션을 확인해 봤습니다.

function solution(s) {
    s = s.toLowerCase()
    const newArr = s.split(' ').map(item => {
        const arr = item.split('')
        if (arr[0] != null) {
            arr[0] = arr[0].toUpperCase()
        } 
        return arr.join('')
    }).join(' ')
    return newArr
}

큰 차이는 없지만 이 솔루션은 단어별로 확인하는 방법으로 해결이 됐네요

결과


❓ Question 2

피보나치 수

  • 피보나치 수로 된 배열에서 해당 숫자를 가져오기

📝 My Solution 2

function solution(n) {
    const newArr = [0];
    let num = 1;
        for (let i = 0; i<n; i++) {
            newArr.push(num%1234567)
            num = newArr[i]%1234567 + newArr[i+1]%1234567
        }
    return newArr[n];
}

2~10만 이하의 자연수가 n으로 주어지는데
그렇게 될 시, 표현할 수 있는 값에 한계를 넘어서게 됩니다.
그렇기에 1234567로 나눈 나머지 값을 리턴하게 된 것이고,
위와 같은 코드를 작성하게 되었습니다.

결과


❓ Question 3

최댓값과 최솟값

  • 문자열에서 최댓값과 최솟값을 구해라

📝 My Solution 3

function solution(s) {
    const newArr = s.split(' ')
    newArr.sort((a,b) => a-b)
    return `${newArr[0]} ${newArr[newArr.length-1]}`;
}

문자열이 공백으로 구분되어있기에 공백을 기준으로 나누고
정렬해준 뒤에, 배열 맨 앞과 맨 뒤를 가져와 문자열로 만들어준다.

결과


참고 한 글

profile
잠재력은 핵폭탄급 Frontend Developer

0개의 댓글

관련 채용 정보