문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
//내 코드
function solution(before, after) {
before = [...before];
for(let i of [...after]){
let idx = before.indexOf(i);
idx !==-1 && before.splice(idx,1);
}
return before.length===0 ? 1:0;
}
//after 요소를 before에서 indexOf하고, before의 그 인덱스의 값을 지움
//before의 길이가 0이면 1, 아니면0
//다른 사람 코드
function solution(before, after) {
return before.split('').sort().join('') === after.split('').sort().join('') ? 1 : 0;
}
//sort()로 알파벳 순서로 정렬한 문자열끼리 비교해서 같으면 1, 다르면 0
1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
//내 코드
function solution(i, j, k) {
let result=[];
for(let a=i; a<=j; a++){
result.push(a);
}
return result.join("").split("").filter(v => Number(v)===k).length;
}
//i부터 j까지의 숫자를 반복문으로 구해서 배열에 담고
//배열의 요소인 숫자들을 모두 합치고, 다시 한글자씩 뗀 후,
//filter로 k인것만 담아서 길이 구하기
//다른 사람 코드
function solution(i, j, k) {
let a ='';
for(i;i<=j;i++){
a += i;
}
return a.split(k).length-1;
}
//꼭 배열로 만들지 않고 초기문자열에 i를 붙이는 코드로 가면 배열.join("").split("")를 안써도 된다.
//for(let a=i; a<=j; a++) 이렇게 안 만들고 더 간단하게
//for(i;i<=j;i++) 이렇게 변수 a를 지정해주지 않고 바로 i를 요소로 쓸 수 있다.
//filter를 쓰지 않고, split(k)를 쓰면 k를 기준으로 두갈래로 나눠진다.
//k의 개수는 나눠진 것들-1을 하면 된다.
이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.
//내 코드
function solution(bin1, bin2) {
return (parseInt(bin1,2) + parseInt(bin2,2)).toString(2);
}
//2진수인 두 수를 10진수로 바꾸고 더한 다음 결과를 2진수로 바꾼다.
//다른 사람 코드
function solution(bin1, bin2) {
let temp = Number(bin1) + Number(bin2);
temp = [...temp.toString()].reverse().map((v) => +v);
for (let i = temp.length; i < 11; i++) {
temp.push(0);
}
for (let i = 0; i < temp.length; i++) {
if (temp[i] === 2) {
temp[i] = 0;
temp[i + 1]++;
} else if (temp[i] === 3) {
temp[i] = 1;
temp[i + 1]++;
}
}
return Number(temp.reverse().join("")).toString();
}
//2진수를 구현한 코드!
프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
//내 코드
function solution(chicken) {
/*처음 실패 코드
let first = chicken/10;
let coupon = chicken%10;
let a=[];
while(first>=10){
a.push(first);
coupon+=first%10;
first=first/10;
}
if(coupon>=10){
let k=Math.trunc(coupon/10);
a.push(k);
if(k>=1000) a.push(Math.trunc(k/1000));
}
return Math.round(a.reduce((acc,cur)=>acc+cur,0)+1);
*/
// 치킨의 초기 값은 1081장
let result = 0;
let temp = chicken % 10; // 108개를 주문하면 쿠폰은 1개가 남는다.
let answer = Math.floor(chicken / 10); // 108개의 닭 주문, 108 쿠폰 발급
result += answer;
answer += temp;
while(1) {
temp = answer % 10;
answer = Math.floor(answer / 10); // 10
result += answer;
//console.log("temp-2", answer);
if (answer === 0) {
break;
}
answer += temp;
//console.log("temp", answer);
}
return (result);
}