2023. 11. 17. 08:58ㆍ카테고리 없음
function solution(x) {
var answer = true;
const arr = String(x).split('')
let sum = 0;
for(let i in arr){
sum += Number(arr[i])
}
if( x%sum===0 ){
answer = true;
}else{
answer = false;
}
return answer;
}
x라는 양수가 주어 졌을때 x의 각 자리수의 합이 x가 딱 나눠졌을때
x를 하샤드 수라고 한다. x가 하샤드 수면 트루를 아니면 폴스를 반환한다.
주어진x를 스트링 매서드로 문자열화하고 각 자리를 스플릿으로 쪼갠다.
그 새어레이를 포문을 돌린다. 각각의 쪼갠 자릿수들을 숫자화 시키면 합을 더해서
각자릿수의 합 완성 이제 x를 각자릿수의 합인 썸으로 나눈다. 나눠서 나머지가 0이면
딱떨어지므로 트루 안나눠떨어지면 폴스를 반환시킨다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function solution(a, b) {
var answer = 0;
if(b>=a){
for(let i =a ; i<=b ; i++){
answer += i
}
}else{for(let i =b; i<=a; i++){
answer += i
}
}
return answer;
}
정수 a.b가 주워졌을때 a,b를 포함한 그사이이의 모든 정수를 더한 합을 구하자.
a와 b중에 어떤수가 크다는 확정이 없으므로 둘중 큰수가 다를때를 조건을 나눴다.
b가 a보다 클때는 포문을 a부터b까지 돌며 그값들을 더해주고
반대의 경우에는 포문을 b부터 a까지 돌며 값을 더해줬다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function solution(num) {
var answer = 0;
for(let i = 0 ; i < 500 ; i++){
if(i===499){answer= -1}
else{ if(num!==1){
if(num%2===0){
num = num/2 }
else{
num = num*3 + 1
}} else if(num === 1 ){
answer = i;
break;
}
}
}
return answer;
}
콜라츠 추측
1-1. 입력된 수가 짝수라면 2로 나눕니다.
1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다.
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다.
위에 조건에는 없지만 500번째가 되도록 1이 나오지않으면 -1을 반환하라고 하였으므로
포문을 500번까지 돌리고 첫 조건을 500회때 -1을 반환하게 함
그밖에 경우에는 숫자가 1에 도달하였는지 여부를 먼저 확인하고 도달하지 않았으면 숫자가 짝수일떄 숫자를 2로 나눈것을 새로운 숫자로 하고 홀수이면 3을 곱하고 1을 더한것을 새로운 숫자로한다. 1에 도달하면
1을 반환하게 한다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function solution(seoul) {
var answer = '';
for(let i in seoul){
if( seoul[i]==='Kim'){
answer = `김서방은 ${i}에 있다`
break;
}
}
return answer;
}
서울에서 김서방 찾기
서울이라는 배열안에 김씨가 있는지 찾는 로직이다.
서울의 배열을 포인문을 돌리고 각배열의 요소에 Kim이라는 요소가 있다면 `김서방은 ${i}에 있다` 라는
값을 반환 여기서 브레이크를 뒀는데 아니면 포문이 계속돌아간다. 나중에 배운건데 저기서 바로 리턴을
주면 포문이 멈춘다고 함
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function solution(arr, divisor) {
var answer = [];
arr.sort((a,b)=>a-b)
for(let i in arr){
if(arr[i]%divisor===0){
answer.push(arr[i])
}
}
if(answer.length === 0 ){
answer.push(-1)
}
return answer;
}
어레이와 디바이저가 주어진다. arr이는 배열 디바이저는 숫자이다. arr의 각요소중에 디바이저로
딱 나누어 떨어지는 배열을 구하서 작은수부터 재정열하는 배열을 리턴한다.
일단 배열을 솔트함수로 정렬부터한다.
포문안에 조건을 돌릴때 어레이의 각요소가 디바이저로 딱 나누어 떨어진다면 어레이의 그요소를
앤써라는 배열에 각요소로 넣는다.
포문밖에서 만약 앤써의 배열에 아무 요소가 없다면 배열에 -1을 넣고 마무리한다.