https://school.programmers.co.kr/learn/courses/30/lessons/12939

 

문제 설명

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.

 

제한조건

  • s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.

 

Math.min(), Math.max()는 number와 string 모두 가능하다.

// 문자열을 숫자로 바꿔서 min, max 비교
function solution(s) {
    const arr = s.split(' ').map(Number)
    
    const min = Math.min(...arr)
    const max = Math.max(...arr)
    
    return min + ' ' + max
}
// 문자열로 min, max 비교
function solution(s) {
    const arr = s.split(' ')
    
    return Math.min(...arr) + ' ' + Math.max(...arr)
}
  • 소수점 자리수 올림

Math.ceil() 메서드는 주어진 숫자보다 크거나 같은 숫자 중 가장 작은 숫자를 반환한다.

Math.ceil(1.2) // 2
Math.ceil(1.8) // 2

Math.ceil(-1.2) // -1
Math.ceil(-1.8) // -1

 

  • 소수점 자리수 내림

Math.floor() 메서드는 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환한다.

Math.floor(1.2) // 1
Math.floor(1.8) // 1

Math.floor(-1.2) // -2
Math.floor(-1.8) // -2

 

  • 소수점 자리수 반올림

Math.round() 메서드는 입력값을 반올림한 수와 가장 가까운 정수 값을 반환한다.

Math.round(1.2) // 1
Math.round(1.5) // 2
Math.round(1.8) // 2

Math.round(-1.2) // -1
Math.round(-1.5) // -1
Math.round(-1.8) // -2

 

  • 소수점 제거

Math.trunc() 메서드는 주어진 값의 소수 부분을 제거하고, 숫자의 정수 부분을 반환한다.

Math.trunc(1.2) // 1
Math.trunc(1.8) // 1

 

Math.floor() / Math.trunc()의 차이점

Math.floor() 메서드는 수학적 계산을 통해 양수, 음수 내림을 적용하는데

Math.trunc() 메서드는 소수점 이하를 전부 제거해 음수의 경우에도 -10을 반환한다.

Math.floor(5.6789) // 5
Math.trunc(5.6789) // 5

Math.floor(-10.12345) // -11
Math.trunc(-10.12345) // -10

 

  • 소수점 자르기

toFixed() 메서드는 숫자를 고정 소수점 표기법으로 표시한다.

const num1 = 0.1234
const num2 = 5.6789

num1.toFixed(1) // '0.1'
num2.toFixed(2) // '5.68'

 

  • 특정 자리수에서 올림
const number = 1.2345

const temp1 = number * 100 // 123.45
const temp2 = Math.ceil(temp1) // 124

const result = temp2 / 100 // 1.24

 

  • 특정 자리수에서 내림
const number = 1.2345

const temp1 = number * 100 // 123.45
const temp2 = Math.floor(temp1) // 123

const result = temp2 / 100 // 1.23

 

Math는 수학적인 상수와 함수를 위한 속성과 메서드를 가진 내장 객체이다. 함수 객체가 아니고, Number 자료형만 지원한다.

 

  • Math.abs(x)

숫자의 절대값을 반환한다.

 

  • Math.ceil(x)

수보다 크거나 같은 수 중에서 가장 작은 정수를 반환한다. (소수점 올림)

 

  • Math.floor(x)

인수보다 작거나 같은 수 중에서 가장 큰 정수를 반환한다. (소수점 내림)

 

  • Math.round(x)

숫자에서 가장 가까운 정수를 반환한다. (소수점 반올림)

 

  • Math.trunc(x)

소수 자리수를 제거하여 숫자의 정수 부분을 반환한다.

 

  • Math.min([x, ...])

0개 이상의 인수에서 제일 작은 수를 반환한다.

 

  • Math.max([x, ...])

0개 이상의 인수에서 제일 큰 수를 반환한다.

 

  • Math.random()

0과 1 사이의 난수를 반환한다.

https://school.programmers.co.kr/learn/courses/30/lessons/120923

 

문제 설명

연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.

 

제한사항

  • 1 ≤ num ≤ 100
  • 0 ≤ total ≤ 1000
  • num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.

 

function solution(num, total) {
    let result = []
    
    // 가운데 값
    const avg = Math.ceil(total / num)

    // 가운데 값이 짝수인지 홀수인지에 따라서 시작 위치 구하기
    const x = Math.trunc(num / 2)

    // 시작 값
    const startNum = avg - x 

    for(i=0; i<num; i++){
        result.push(startNum + i)
    }
    
    return result
}

+ Recent posts