JavaScript 223

LV1 04 하샤드 수, 정수 내림차순으로 배치하기, 나머지가 1이 되는 수 찾기

하샤드 수 문제: 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. x가 하샤드 이면 trun 아니면 false를 반환하라. 풀이: x를 split를 이용해 한 글자씩 나눠 배열로 만들고 reduce()를 이용해 다 더한 후 x에 %하여 === 0을 한다. function solution(x) { let num = x.toString().split('').reduce((a, b) => Number(a) + Number(b)); return x % num === 0; } 정수 내림차순으로 배치하기 문제: 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로..

LV1 03 문자열 내 p와 y의 개수, 문자열을 정수로 바꾸기,x만큼 간격이 있는 n개의 숫자

문자열 내 p와 y의 개수 - 문제: 매개변수로 문자열이 주어지면 'p'와 'y'의 개수가 같다면 true 아니면 false를 반환하면 된다. 단, 대·소문자를 구분하지 않는다. - 풀이: 매개변수로 주어진 문자열 중 대·소문자가 섞여서 오기 때문에 toLowerCase()로 소문자로 바꾸고 split()와 length를 이용해 'p'와 'y'의 개수를 비교만 하면 된다. function solution(s){ return s.toLowerCase().split('p').length === s.toLowerCase().split('y').length } 문자열을 정수로 바꾸기 - 문제: 문자열 s를 숫자로 변환하기 const solution = (s) => Number(s); x만큼 간격이 있는 n개의 ..

LV1 02 자릿수 더하기, 자연수 뒤집어 배열로 만들기, 정수 제곱근 판별

- 이번에도 크게 어렵지 않아 문제를 3개 풀고 함께 올립니다. 자릿수 더하기 문제: 자연수 N이 주어지면 각 자릿수의 합을 구하면 된다. N의 범위는 100,000,000이하 자연수이다. 풀이: 우선 숫자형를 문자열로 바꾸고 split()로 배열로 만든 후 reduce()를 이용해 숫자들을 다 더했고 1자리 수만 나왔을 때를 대비해 마지막에 0을 넣어주었다. function solution(N) { return N.toString().split('').reduce((a, b) => Number(a) + Number(b), 0); } 자연수 뒤집어 배열로 만들기 문제: 자연수 n을 뒤집어서 배열로 반환하면 되는 문제다. 조건은 10,000,000,000이하의 자연수 이다. 풀이: n을 위와 동일하게 배열..

20-1 배열과 메서드 1 (splice, slice, concat)

요소 추가·제거 메서드 - 배열에서 배웠던 메서드 (링크) arr.push() arr.pop() arr.shift() arr.unshift() 이 외에 요소 추가, 제거 메서드들!! splice() arr.splice(index[, deleteCount, elem1, ..., elemN]) 첫 번째 매개변수는 조작을 가할 index를 가리킨다. 두 번째 매개변수 deleteCount로 제거하고자 하는 요소의 개수를 나타낸다. 세 번째 요소 이상부터는 배열에 추가할 요소를 나타낸다. let arr = [1, 2, 3]; delete arr[1]; // "1"를 삭제합니다. arr[1]; // undefined arr.length; // 3 delete를 써서 요소를 지우고 난 후 배열 --> arr = [..

JS 2022.12.01

LV0 89 옹알이(1)

문제 설면 - 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다. 문자열은 알파벳 소문..

19-3 JS 배열3

반복문 for문은 배열을 순차적으로 순회라 때 index를 사용해서 값을 출력한다. 그런데 배열에는 다른 방법으로 순회할 수 있는데 그것은 for..of문이다. 그런데 for..in릉 현재 요소의 인덱스를 얻을 수 없고 값만 얻을 수 있다. 배열은 객체에 속하기 때문에 동일하게 출력도 가능하다. const arr = [1, 2, 3]; for (let e of arr) { console.log(e); } // 출력 // 1 // 2 // 3 // 동일 //for (let e of arr) { //console.log(arr[e]); //} 그런데 for..in문을 사용했을 때 문제가 있다. ( 밑에 내용은 요악할 것이 없어 그대로 들고 왔습니다~~) for..in 반복문은 모든 프로퍼티를 대상으로 순회합..

JS 2022.11.29

LV0 88 평행

문제 설명 - 점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다. [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] 주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요. 제한사항 0 ≤ dots의 원소 ≤ 100 dots의 길이 = 4 dots의 원소의 길이 = 2 dots의 원소는 [x, y] 형태이며 x, y는 정수입니다. 서로 다른 두개 이상의 점이 겹치는 경우는 없습니다. 두 직선이 겹치는 경우(일치하는 경우)에도 1을 return 해주세요. 임의의 두 점을 이은 직선이 x축 또는 y축과 평행한 경우는 주어지지 않습니다. 입출력 예 dots ..

LV0 87 겹치는 선분의 길이

문제 설명 - 빨간색, 초록색, 파란색 선분이 x축 위에 있습니다. 세 선분의 x좌표 시작과 끝이 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를return 하도록 solution 함수를 완성해보세요. lines가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다. 선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 2만큼 겹쳐있습니다. 제한사항 lines의 길이 = 3 lines의 원소의 길이 = 2 모든 선분은 길이가 1 이상입니다. lines의 원소는 [a, b] 형태이며, a, b는 각각 양 끝점 중 하나입니다. ..