Lv. 0 - 공배수 풀이과정
문제 설명
정수 number
와 n
, m
이 주어집니다.
number
가 n
의 배수이면서 m
의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.
제한사항
- -10 ≤
number
≤ 100 - 2 ≤
n
,m
≤ 10
입출력 예
n | n | m | result |
---|---|---|---|
60 | 2 | 3 | 1 |
55 | 10 | 5 | 0 |
입출력 예 설명
3-1) 입출력 예 설명 #1
60은 2의 배수이면서 3의 배수이기 때문에 1을 return합니다.
3-2) 입출력 예 설명 #2
55는 5의 배수이지만 10의 배수가 아니기 때문에 0을 return합니다.
프로그래머스에서 제공한 코드
처음 프로그래머스에서 작성된 코드는 아래와 같다.
function solution(number, n, m) {
var answer = 0;
return answer;
}
문제 풀이
const solution = (number, n, m) => (number % n === 0 && number % m === 0) ? 1 : 0
함수 선언
- 화살표 함수를 사용하여
number
,n
,m
매개변수를 받는다.
풀이
-
number
가n
의 배수인지 확인하기 위해number & n === 0
을 작성한다. -
number
가m
의 배수인지 확인하기 위해number & m === 0
을 작성한다. - 두 조건이 맞을 경우란 내용이 있어서
삼항 연산자
를 사용했다. ( 조건 ? 참일 때 실행 : 거짓일 때 실행 ) -
n
의 배수이면서m
의 배수일 경우를 구하기 위해 조건위치에 조건문을 통해 작성했다.(number % n === 0 && number % m === 0)
-
number
가n
과m
의 배수일 경우 1을 반환, 0일 경우 0을 반환한다.
결과 반환
-
number
에 60,n
에 2,m
에 3을 대입할 60은 2와 3의 배수이기에 1을 반환한다. -
number
에 55,n
에 10,m
에 5을 대입할 55는 5의 배수지만 10의 배수가 아니기에 삼항 연산자의 조건이false
가 되어 0을 반환한다.
실행
-
number
는 60,n
은 2,m
은 3을 대입할 경우 삼항 연산자의 조건이 true가 되어 solution 함수는 1을 반환한다. -
number
는 55,n
은 10,m
은 5를 대입할 경우 삼항 연산자의 조건이 false가 되어 solution 함수는 0을 반환한다.
다른 사람의 풀이 참고
수학을 잘 하는 사람이 정말 많다.
전혀 생각지도 못한 방법으로 문제를 푸는데.. 논리부정(?)풀이 방식과 대부분 조건문을 통해 문제를 풀었다.
// [5명] 논리 부정을 사용한 풀이 과정
function solution(number, n, m) {
return +!(number % n || number % m);
}
// [6명] 나와 비슷한 삼항 연산자를 사용한 풀이 과정
const solution = (num, n, m) => (
num % n === 0 && num % m === 0
? 1
: 0
)
링크
- 문제 링크: 문제 링크
- Git: rarrit github
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges