231114 TIL

chillakilla·2023년 11월 14일

Flag에 따라 다른 값 반환하기

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

입출력의 예

솔루션 코드

<script>
function solution(a, b, flag) {
  if (flag === true) {
    return a + b;
  } else {
    return a - b;
  }
}
</script>
  • Flag가 true 면 a+b, false 면 a-b.
  • 아는 것이 if else 이니 그걸 이용해보자.
  • 솔루션, 잘들어. 지금부터 넌 이 기능을 수행해 줘야 해.
  • 너만이 할 수 있는 거야...너 아니면 안 돼...
  • flag 로 입력되는 값이 true 일때, 입력 받은 a + b를 반환하고.
  • 그것이 아닐 때, 입력 받은 a - b 를 반환해줘.

다른 사람의 풀이

<script>
function solution(a, b, flag) {
    return (flag)? a+b : a-b;
}
</script>

왜 삼항연산자를 알면서도 나는 써먹지를 못하는 걸까?
이 말을 얼마 전 TIL에도 분명히 적었던 것 같은데...
ㄴ;ㅣ아허ㅣㅏ너ㅗ히ㅏ노ㅓ히ㅓ나ㅣ러히너히너랑ㅎ


공배수

Q : 정수 number와 n, m이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.

입출력의 예

솔루션 코드

<script>
function solution(number, n, m) {
  let answer = number % n == 0 && number % m == 0 ? 1 : 0;
  return answer;
}
</script>
  • 입력받은 number를 n으로 나눴을 때의 나머지가 0 이고,
  • 입력받은 number를 m으로 나눴을 때의 나머지도 0 일 때,
  • truthy한 값으로 평가될 경우 1 을 반환.
  • falsy한 값으로 평가될 경우 0 을 반환.

다른 사람의 풀이

<script>
function solution(number, n, m) {
  return +!(number % n || number % m);
}
</script>
  • %를 통해서 number 가 n 과 m 으로 나누어지는지 확인.
  • n, m에 대해 결과가 0이면, number가 n과 m으로 나누어진다는 의미.
  • !(number % n number % m)에 대한 평가는 true.
  • return 문 시작부분의 (+)는 boolean 결과를 숫자 값(참=1, 거짓=0)으로 변환.
  • 숫자가 n, m으로 나누어지면 1을 반환, 그렇지 않으면 0을 반환.

~~오늘도 난이도 Lv 1을 향해서 ~~

profile
꾸준하려 하는 쉽덕놈

0개의 댓글