문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
//내 코드
function solution(str1, str2) {
return str1.includes(str2) ? 1:2;
}
//다른 사람 코드
function solution(str1, str2) {
return str1.split(str2).length > 1 ? 1 : 2
}
//split("문자열1")으로 문자열2을 배열의 요소로 나눴을 때 나뉘었다면, 배열의 요소는 2개이상이 되고,
//그 뜻은 문자열2 안에 문자열1이 이었기 때문에 나뉘어졌다와 같다.
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
//내 코드
function solution(n) {
return Math.sqrt(n)===Math.trunc(Math.sqrt(n)) ? 1:2;
}
//Math.sqrt는 제곱근을 반환하는 메서드
//Math.trunc는 소수점을 버리는 메서드
//제곱근을 구했을 때 정수임을 확인해야 하므로 소수점을 버린 값과 같은지 확인했다.
//다른 사람 코드
function solution(n) {
return Number.isInteger(Math.sqrt(n)) ? 1 : 2;
}
//isInteger()메서든 정수인지 판별해서 정수라면 true를 반환한다.
//다른 사람 코드
function solution(n) {
for (let i = 0; i < n/2; i++) {
if (i*i == n) {
return 1;
}
}
return 2;
}
//0부터 n/2까지 반복문 돌고 제곱했을 때 n이 나온다면 1, 아니면 2
//다른 메서드를 쓰지 않고 for문만 돌려도 가능했다.
//다른 사람 코드
function solution(n) {
return Math.sqrt(n) % 1 === 0 ? 1 : 2;
}
//1로 나눴을 때 나머지가 0이라는 것은 정수라는 것이다.
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
//내 코드
function solution(n, t) {
return Math.pow(2,t)*n;
}
//1시간이면 n*2, 2시간이면 n*2*2, 3시간이면 n*2*2*2
//2의 t제곱을 구하고 처음 수n을 곱하면 된다.
//다른 사람 코드
function solution(n, t) {
return n << t;
}
//왼쪽 시프트 연산자 : 첫번째 피연산자를 명시된 비트수만큼 왼쪽으로 이동하고,
//왼쪽으로 이동된 초과비트는 폐기되고, 오른쪽은 움직인 비트 수 만큼 0비트로 채워진다.
//9 << 3; // 72
// 9 * (2 ** 3) = 9 * (8) = 72
//내 코드에서 축약된 표현이다.
//다른 사람 코드
function solution(n, t) {
while (t-- > 0) n*=2;
return n;
}
//t가 0이 되기 전까지 n에 2를 계속 곱한다.
//위의 코드를 for문으로 풀어서 쓴 코드
function solution(n, t) {
let answer = n;
for(let i = 0; i < t; i++){ //0부터 t전까지 반복해서 2를 곱한다.
answer *= 2
}
return answer;
}
//다른 사람 코드
function solution(n, t) {
return n*(2**(t))
}
//거듭제곱의 또 다른 방법 **
영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
//내 코드
function solution(my_string) {
return my_string.toLowerCase().split("").sort().join("");
}
//sort()는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환하는데,
//기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따른다.
//month, 숫자, 알파벳 순서도 가능하다.
//다른 사람 코드
function solution(s) {
return [...s.toLowerCase()].sort().join('')
}
//[...s] 스프레드를 쓰면 문자열을 배열로 만들 수 있다.
//Array.from(my_string)을 써도 배열로 만들 수 있다.