본문 바로가기
코딩테스트/프로그래머스 0단계 - 기초 트레이닝

프로그래머스 0단계 - n의 배수, flag에 따른 값, 문자열의 앞의 n글자, 정수 부분

by 학습하는 청년 2024. 3. 28.

n의 배수

정수 num과 n이 매개 변수로 주어질 때, num이 n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.

  • 2 ≤ num ≤ 100
  • 2 ≤ n ≤ 9
function solution(num, n) {
  return num % n === 0 ? 1 : 0;
}

n의 배수라는 얘기는 결국, 나누었을 때 몫만 남는다는 말이므로 %연산자로 계산

 


flag에 따라 다른 값 반환하기

두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.

  • -1,000 ≤ a, b ≤ 1,000
function solution(a, b, flag) {
  return flag ? a + b : a- b;
}

falg가 매개변수로 주어져 있으므로, 입력되는 값에 따라 조건식을 작성할 필요없다.

 


문자열의 앞의 n글자

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.

  • my_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 ≤ my_string의 길이 ≤ 1,000
  • 1 ≤ n ≤ my_string의 길이
function solution(my_string, n) {
  let newString = '';
  for(let i = 0; i < my_string.length; i++) {
  if(n > i) newString += my_string[i];
  }
  return newString;
}

// 다른 사람의 풀이
function solution(my_string, n) {
 return my_string.slice(0, n)
}

문자열을 순회하여 문자 하나하나를 새로운 변수에 집어넣는다.

 

let my_string = "프로그래머스"라고 한다면, 

n=3 일 때, newString의 값은 아래와 같다.

  • i = 0 => 프
  • i = 1 => 프로
  • i = 2 => 프로그

if(3 > 2)가 되므로 출력은 "프로그"처럼 작동할 것이다.

 

<다른 사람의 풀이에 대한 이해>

메소드 slice(0, n)을 활용하여 해결

-> 0번째 다음부터 n번까지를 잘라서 출력하는 메소드

ex) let str = "프로그래머스";

str.slice(0,3); // "프로그"


정수 부분

실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return 하도록 solution 함수를 완성해주세요.

  • 0 ≤ flo ≤ 100
function solution(flo) {
  return Math.trunc(flo);
}

조건이 '양수' Math.floor()를 사용해도 해결되지만,

'음수'였다면 틀리게 된다. 왜냐하면, Math.floor()는 수직선을 기준으로 왼쪽에 있는 값을 반환한다.

반면, Math.trunc()는 소수점만 버려주는 역할을 수행하므로, 음수에서도 정수 부분만 구할 수 있다.

댓글