항해99(온보딩커리큘럼)

온보딩 커리큘럼(알고리즘풀기 기초 0단계 2일차)

stella0905 2023. 3. 13. 20:43

머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n 과 k 가 매개변수로 주어졌을 때, 양꼬치 n 인분과 음료수 k 개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.

function solution(n, k) {
  return 12000 * n + (k - parseInt(n / 10)) * 2000
}
console.log(solution(10, 3))

머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n 이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.

function solution(n) {
  return parseInt(n / 7) === 0 ? parseInt(n / 7) + 1 : parseInt(n / 7)
}

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice 와 피자를 먹는 사람의 수 n 이 매개변수로 주어질 때, n 명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

function solution(n) {
  return parseInt(n / 7) === 0 ? parseInt(n / 7) + 1 : parseInt(n / 7)
}

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice 와 피자를 먹는 사람의 수 n 이 매개변수로 주어질 때, n 명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

function solution(slice, n) {
  return Math.ceil(n / slice)
}

사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.

  • x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.
  • x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.
  • x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.
  • x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.

x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.

function solution(dot) {
  const x = dot[0]
  const y = dot[1]
  if (x > 0 && y > 0) {
    return 1
  }
  if (x < 0 && y > 0) {
    return 2
  }
  if (x < 0 && y < 0) {
    return 3
  }
  return 4
}

머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.

구매한 옷의 가격price

가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.

function solution(money) {
  let number = parseInt(money / 5500)
  let Changes = money - (number * 5500)
  return [number, Changes]
}

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

function solution(n) {
  let result = 1
  for (i = 1; i < n; i++) {
    if (i * i === n) {
      result = 1
    } else {
      result
    }
  }
  return result === 0 ? 2 : 1
}
function solution(n) {
  let x = Math.sqrt(n)
  if (x %1 === 0) {
    return 1
  } else {
    return 2
  }
}

 

마지막 제곱근 구하는건 처음에 제곱근을 구하는 메서드를 모르고 for문으로 풀었다. 

오늘 sqrt메서드를 배웠고 다만 이전에는 아예 풀지도 못했던걸 이제는 풀수는 있어서 성취감 있었다.

좀 더 기본기를 갖추고 풀면 더 좋은 방법으로 풀 수 있을 것 같다는 생각이 들었다. 

오늘부터 알고리즘 풀기인데 0단계는 혼자 다 풀어보고싶다.