문제 풀기 185

문제 15. 나머지가 1이 되는 수 찾기

반복문으로 i를 1부터 n까지 i++ 하면서 결과 값을 찾을 수 있지만, 그렇게 되면 반복 효율이 좋지 않아깊게 생각해보았다. 그 결과 n이 홀수일 경우 무조건 2가 정답이라는 사실을 발견했고, 3부터는 2를 더해주면서 비교할 경우 더 빠르게 결과값을 찾을 수 있다는 사실을 발견 했다. 제출한 코드 : function solution(n) { if (n % 2 === 1) return 2; // n이 홀수인 경우 i = 2가 항상 해답 for (let i = 3; i { // 홀수 i만 검사 if (n % i == 1) return i; } }

문제 14. 악수의 합(Math.sqrt())

단순하게 반복문에서 i를 1부터 n까지 i++ 하면서 n % i == 0인지 확인하고, 더해주면 쉽게풀 수 있지만 그러면 반복문의 효율성이 떨어진다 생각해 수학의 ROOT를 사용하기로 결정했다.찾아 본 결과 Math.sqrt()로 Root값을 구할 수 있었고, 그 결과 반복 횟수를 O(Root(N))만큼줄일 수 있었다. 제출한 코드 : function solution(n) { let answer = 0; for(let i = 1; i { if(n % i == 0) { answer += i; if (i !== n / i) { answer += n / i; ..

문제 13. 자릿수 더하기(toString(), 문자열에서 문자 추출)

나머지 연산자와 나누기 연산자를 활용하면 쉽게 문제를 풀 수 있지만, 다른 형태로 문제를풀어보고 싶어졌다. 함수의 매개변수로 전달 받은 n은 정수여서 JavaScript에서 문자열로 바꾸는 함수가 있는지확인해 본 결과 .toString()함수가 존재했다. 그리고 저번에 학습한 for의 여러 방식 중 for(let 변수 in 변수)을 사용한 형태로 문제로문자열의 index를 이용해 문자열의 문자들을 하나 씩 더하는 방식으로 문제를 해결했다. 이때, JavaScript는 문자열에서 문자를 추출할때 변수[index 값]으로 원하는 문자를추출 가능했다. 제출한 코드 : function solution(n) { let result = 0; const temp = n.toString(); f..

문제 12. 평균 구하기(reduce 함수)

JavaScript에 배열에 담긴 값의 평균을 구하는 함수가 있을까 찾아본 결과 Avg()같이 직접적으로 평균을구하는 함수는 없었다... 하지만 reduce() 함수를 사용해 반복문 없이 sum을 구하고, sum / arr.length로 평균을 쉽게 구할 수 있었다. reduce 함수의 사용 방법으로는 reduce((누산값, 현재 값, 현재 인덱스, 원본 배열) => 계산 과정, 초기값) 형태로사용할 수 있었다. 제출한 코드 : function solution(arr) { const sum = arr.reduce((acc, cur)=> acc + cur, 0); return sum / arr.length; }

문제 10. 배열의 평균값(반복문 형태, 배열의 길이)

for(let i = 0; i 로 answer에 numbers가 저장하고 있는 정수 배열들을 모두 더할 수도 있었지만,for문의 다양한 종류를 바탕으로 풀기에 도전했다. for, while, do while문은 모두 사용할 수 있었고, C#에서 forech와 같이 for( 변수 in 배열, 딕셔너리) 사용도 가능했다.그래서 혹시나 C#의 변수.where()과 같은 문법이 있나 찾아본 결과변수.forEach()가 존재했다. forEach(저장된 값, 인덱스, forEach를 호출한 배열) 순으로 return 값이 존재했고,호출 방법은 forEach((저장된 값, 인덱스, forEach를 호출한 배열) => )로 순차적으로 호출 가능했다. 아직 인덱스와 forEach를 호출한 배열로 무언가를 해보지는 않았..

문제 9. 짝수의 합(변수 선언 방법(var, let, const))

처음에 for문에 사용되는 변수를 C 계얼 언어, Java 언어처럼 int i로 선언 했는데 오류가 발생했다.알고보니, JavaScript에서는 변수 선언을 var, let, Const 3가지로만 사용한다는 사실을 알게 됐다. var은 전역 변수 같은 형태로 초기화가 돼 있지 않으면 "undefined"가 할당되고 기존에 동일한 이름으로 선언돼 있더라도var "동일한 이름"으로 다시 재선언이 가능했다. 하지만, 위의 사례들 때문에 스스로 오류가 발생할 수 있고, 코드가 어떤 것을 수행하는지 알 수 없다는 단점이 있다. => 따라서, 되도록 사용하지 않는 것이 좋다. let은 지역 변수 같은 형태로 var가 달리 재선언이 불가능 하다. 하지만, 변수 재할당은 가능하다. Const는 변수 재선언, 재할당이..