[JS] 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 : n과 m은 각각 1000 이하인 자연수입니다. 뭔가 코드가 더러운데 그래도 처음에 이렇게 생각햇으니깐 작성했다. 나중에 리펙토링을 한번 진행해도 좋을것같다. 1. for문으로 인자 arr만큼 돌면서 arr[i]와 인자 divisor로 나머지값을 구한다. 2. 만약에 나머지 값이 없다면 answer에 집어넣는다. 3. 만약에 answer가 비어있다면 -1를 넣어 반환한다. 4. 오름차순 정렬 후 반환한다. function..
[JS] 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한사항 : 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 이번문제는 쉬운줄 알았는데 생각하다보니깐 결국 이중 for문을 돌게 되었다. 뭔가 이중 for에 대해 거부감이 있는데...😭효율적이지 못한 방향으로만 생각하는것같아서... 조금 슬푸다. // 1. 공백을 기준으로 문자열 자르기 // 2. forf를 돌며 짝번째는 ..
[JS] 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한사항 : n은 1이상 8000000000 이하인 자연수입니다. 오랜만에 알고리즘 문제를 푸니깐 머리가 굳어서 생각했던 코드를 작성하는데 시간이 조금 걸렸다...😂 아무리 바빠도 뭐든지 꾸준히 해야할것같다ㅎ... 풀이내용은 아래와 같다. 1. n을 배열로 변환하여 내림차순으로 정렬하기 2. 정렬한 값을 다시 문자열 -> 숫자로 변환하여 반환한다. function solution(n) { let answer = String(n).split('').sort(function(a, ..
하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한사항 : x는 1 이상, 10000 이하인 정수입니다. 이번에는 삼항연산자를 쓸 수 있다면 무조건 응용한다! 라는 생각으로 진행하였다. 접근방식은 아래와 같다. 1. x와 비교할 누적값 구하기 2. 누적값을 구하기 위해 숫자를 잘라 값을 누적하며 더하기 3. 누적값과 x를 비교했을때 나머지가 0이면 참, 아니라면 거짓을 반환하기 function solution(x) { var answer = true; let num ..