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

김명성·2021년 10월 20일
0

Algorithm

목록 보기
37/61
post-thumbnail

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

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

❓ Question 1

정수 제곱근 판별

  • 주어진 수가 제곱근인지 판별해서 값을 구하자

📝 My Solution 1

function solution(n) {
    var answer = 0;
    let sqrtNum = parseInt(Math.sqrt(n))
        if (sqrtNum*sqrtNum === n) {
            answer = (sqrtNum+1)*(sqrtNum+1)
        } else {
            answer = -1
        }
    return answer;
}

Math.sqrt 함수를 이용해서 루트 값을 구해준 뒤,
그 값을 정수값으로 만들어서 그 값을 제곱 했을때, 들어온 값과 같다면
조건에 맞게 결과를 내줬습니다.

결과


❓ Question 2

점수 내림차순으로 배치하기

  • 어떤 수를 내림차순으로 재정렬하기

📝 My Solution 2

function solution(n) {
    var answer = String(n);
    let arr = [];
        for (let i = 0; i<answer.length; i++) {
            arr.push(answer.slice(i,i+1))
        }
    arr = arr.sort((a,b) => b-a).join('')
    answer = Number(arr)
    return answer;
}

주어진 숫자를 문자열로 변경한 뒤,
하나씩 배열에 따로 저장하고, 내림차순으로 정렬한 뒤
다시 합쳐서 숫자로 변환하는 과정으로 문제를 해결했습니다.

결과


❓ Question 3

자연수 뒤집어서 배열로 만들기

  • 주어진 수의 자릿수를 뒤집어서 새로운 배열로 만들기

📝 My Solution 3

function solution(n) {
    let result = String(n);
    let arr = [];
    for (let i = result.length-1; i>=0; i--) {
        arr.push(Number(result[i]))
    }
    return arr
}

들어온 수를 문자로 변경한 뒤, 반복문을 이용합니다.
역순으로 배열에 넣을때 숫자로 변경해서 넣어줍니다.

결과


❓ Question 4

자릿수 더하기

  • 주어진 숫자의 자릿수를 더한 값을 반환

📝 My Solution 4

function solution(n) {
    let change = String(n).split('');
    let answer = 0
    for (let i = 0; i<change.length; i++) {
        answer += Number(change[i])   
    }
    return answer
}

들어온 숫자를 문자로 바꾸고 split함수를 이용해 배열로 바꿉니다.
그 후, 각 인덱스의 값을 숫자로 바꿔서 더해주고 값을 냅니다.

결과


❓ Question 5

이상한 문자 만들기

  • 문자열 단어에서 짝수번째는 대문자로, 홀수번째는 소문자로 만들기

📝 My Solution 5

function solution(s) {
    let newArr = s.split(' ')
    let answer = []
    for (let i = 0; i<newArr.length; i++) {
       for (let l = 0; l<newArr[i].length; l++) {
           if (l%2 === 0) {
               answer.push(newArr[i][l].toUpperCase())
           } else {
               answer.push(newArr[i][l].toLowerCase())
           }
       }
        if (i === newArr.length-1) {
            break;
        } else {
            answer.push(' ')
        }
    }
    return answer = answer.join('')
}

들어온 문자열을 단어 단위로 먼저 나눠주고,
반복문 2개를 통해 각 단어의 위치를 확인해 조건에 맞게
대문자와 소문자로 변환을 해준뒤, 단어를 구별하는 공백을 넣어줍니다.

그 후, 맨 마지막 단어 뒤에는 공백이 안 생기도록 조건을 걸어준 뒤,
모든 배열 값을 합쳐줘서 반환합니다

결과

profile
잠재력은 핵폭탄급 Frontend Developer

0개의 댓글

관련 채용 정보