공배수
정수 number와 n, m이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.
- 10 ≤ number ≤ 100
- 2 ≤ n, m < 10
function solution(number, n, m) {
if(number % n === 0) {
if(number % m === 0) return 1;
}
return 0;
}
배수이므로 나누면 몫만 떨어지면 된다. 따라서 %연산자를 사용하였다.
n의 배수이면서 m의 배수라는 조건이 있으므로 if문을 두 번 사용했다.
더 크게 합치기
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
- 12 ⊕ 3 = 123
- 3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.
- 1 ≤ a, b < 10,000
function solution(a, b) {
let num1 = Number(String(a) + String(b));
let num2 = Number(String(b) + String(a));
return num1 >= num2 ? num1 : num2;
}
// 다른 사람의 풀이
function solution(a, b) {
return Math.max(Number(`${a}${b}`), Number(`${b}${a}`))
}
a와 b가 양의 정수이니까, 'a' + 'b'하면 'ab'가 되고 Number('ab')이면 숫자 ab가 되니까
Number('a' + 'b')로 풀었는데 안 됐다. 왜지??? 아직 모르겠다.
그래서 일단 a와 b를 각각 문자열로 바꿔주고, 전체에 Number()를 사용했다.
--> 이유를 알게 됐다!! 'a', 'b' 저렇게 만들면, 문자로 바꾼 게 아니라 문자 a와 b를 더한 것 밖에 안 되는 꼴이었다!. 매개변수에 a,b가 있다고 좋다고 덤볐다가 20분을 할애하게 됐다.
<다른 사람의 풀이에 대한 이해>
Math.max(a, b)는 둘 중 더 큰 값을 리턴해준다. 따라서 조건식을 세울 필요가 없다. 두 값이 같은 경우에는 같은 값을 출력
'코딩테스트 > 프로그래머스 0단계 - 기초 트레이닝' 카테고리의 다른 글
프로그래머스 0단계 - 조건에 맞게 수열 변환하기 3 / A 강조하기 (0) | 2024.04.01 |
---|---|
프로그래머스 0단계 - 문자열 섞기, 문자열로 변환 (0) | 2024.03.30 |
프로그래머스 0단계 - 소문자로 바꾸기, 대문자로 바꾸기 (0) | 2024.03.30 |
프로그래머스 0단계 - 두 수의 합, 홀짝에 따른 다른 값 반환 (0) | 2024.03.30 |
프로그래머스 0단계 - n의 배수, flag에 따른 값, 문자열의 앞의 n글자, 정수 부분 (0) | 2024.03.28 |
댓글