본문 바로가기

자바스크립트

배열의 모든 요소의 값의 평균을 구하는 알고리즘 이 문제도 제목 그대로다. 자세한 문제는 아래 링크 참조바란다. https://school.programmers.co.kr/learn/courses/30/lessons/12944 순도 99% 나의 답안이라고 봐야겠다. 아래와 같다. 자세한 내용은 주석 참조바란다. function solution(arr) { var answer = 0; answer = (arr.reduce((acc, cur) => acc + cur))/arr.length; // arr 의 첫번째 요소부터 acc에 넣고 두번째 요소는 cur에 들어간다. 그 둘을 더한다. 더한 결과를 또다시 acc에 넣고 그 다음 요소를 더한다. // [번외] 메서드 이름이 reduce 인 이유는 배열의 요소 하나하나를 사용해 함수를 실행하는 과정에서 사용.. 더보기
두 정수 사이에 있는 정수들의 합을 구하는 알고리즘 제목과 같은 코딩테스트 문제이다. 자세한 내용은 아래와 같다. https://school.programmers.co.kr/learn/courses/30/lessons/12912 나의 순도 99% 답안은 아래와 같다. 자세한 내용은 주석 참조. function solution(a, b) { var answer = 0; // 일단 answer는 0 이다. if(a 더보기
문자열의 가운데 글자를 가져오는 알고리즘 제목 그대로다. 문제는 아래 링크와 같다. https://school.programmers.co.kr/learn/courses/30/lessons/12903 내가 작성한 버전이다. function solution(s) { var answer = ''; answer = s.length % 2 === 0 ? // 문자열 s의 문자개수가 짝수라면 : 앞의 것을 answer에 넣는다. s.slice(s.length/2-1, s.length/2+1) : // slice 메서드로 가운데 2개의 문자열 추출한다. s[Math.floor(s.length/2)] // s의 문자개수가 홀수라면 s.length/2를 하면 n.5 가 나온다 // floor 메서드로 내림하여 가운데 문자열의 순서를 찾는다. console.lo.. 더보기
사용자가 입력한 대로 반복해서 별을 출력해주는 알고리즘 (내가한 버전) 간단한 알고리즘 문제를 풀어 봤다. 문제는 아래 링크 참조 바란다. https://school.programmers.co.kr/learn/courses/30/lessons/12969?language=javascript 이전에 같은 문제를 포스팅한 적이 있다. 이번 포스팅에서는 나름대로 내가 풀어 봤다. 인터넷 내용은 50% 정도 훑어보았다. 답안을 뇌에 50%정도 흘려 주었다고 할 수 있겠다. 답안 보기 싫다고 구글링을 안할 수도 없고 기억을 삭제할 수도 없는 일이다. 바로 나의 답안을 올려 본다. 이쯤 주석처리를 하면 언제든 다시 볼 수 있을 것 같다. 반복문 중첩되니 쪼금 들여다 볼 필요는 있다. process.stdin.setEncoding('utf8'); process.stdin.on('data'.. 더보기
2023. 4. 12. 부트캠프 프로그래밍 주차를 마치는 어떤 1인에 대한 평가 그 1인이 누구일지는 이 글을 읽는 누구나 쉽게 짐작할 수 있을 것이다. 부트캠프 측에서는 중요한 챕터가 끝날 때마다 본인 스스로를 평가할 수 있도록 질문지를 준비해 준다. 질문들에 답해 보았다. 1. 나는 이번 챕터를 실제로 밀도있게 집중했나요? A. 매우 몰입했다. 기간은 4/1 ~ 4/13 였고, 정규일정에 매번 정시출석했다. 정규일정이 아닌 날에도 출석했다. 부트캠프 측에서 준비한 과제를 모두 수행했다. 과제는 개발 블로그 포스팅이었다. 일단 'JS 문법 강의'를 모두 듣고 강의 내용에 해당하는 부분을 ⌜혼자 공부하는 자바스크립트⌟ 책의 확인문제에서 찾아 해결한 다음, 그것을 블로그에 포스팅하는 것이다. 강의는 1주일만에 다 들은 것 같다. 현재까지 50개 이상의 포스팅을 했다. 나쁘지 않은 양이.. 더보기
깊은 복사는 다른 객체를 생성해 낸다고 보아도 되겠다. [JS 문법 종합반 3주차 - 1] 얕은 복사는 중첩된 객체를 얕은 복사하면 문제가 있었다. 관련하여 게시물참조 https://gamunbidev.tistory.com/54 그런 문제를 해결하는 것이 깊은 복사다. 깊은 복사를 하면 복사당한 객체나 복사로 생긴 객체 하나를 수정하면 그 건드린 객체만 바뀐다. (얕은 복사에서는 하나를 수정하면 둘다 바뀌는 문제가 있었다.) 여러 말 할 필요 없이 코드를 보자. var user = { name: 'wonjang', urls: { portfolio: 'http://github.com/abc', blog: 'http://blog.com', facebook: 'http://facebook.com/abc', }, arr: ['a', 'b'] }; // 깊은 복사 var copyObjectDeep = .. 더보기
얕은 복사의 문제점: 중첩된 객체를 복사하면 복사당한 객체는 복사로 생겨난 객체와 동시에 수정된다. [JS문법 종합반 3주차 - 1] 얕은 복사는 문제가 있다. 무엇일까? 중첩된 객체를 얕은 복사를 할 때가 문제이다. 중첩된 객체란 객체 안에 객체가 있는 경우다. 이 중첩된 객체가 복사당하면 복사 결과물인 객체와는 당연히 따로 서로 다른 객체가 되어야 할 것이다. 그런데 그게 안된다. 복사당한 객체를 수정하면 복사결과 객체까지 바뀌어 버린다. 반대로 복사결과 객체를 수정하면 복사당한 객체도 바뀐다. 객체내부의 중첩객체를 수정하면 그렇다. 얕은 복사는 for in 구문을 활용해서 하는데 코드는 아래와 같다. 문제가 있는 코드다. var user = { name: 'wonjang', urls: { portfolio: 'http://github.com/abc', blog: 'http://blog.com', facebook: 'http://f.. 더보기
메모리: 변수와 상수 그리고 불변하다와 불변하지 않다. [ JS문법 종합반 3주차] 자바스크립트의 메모리 관리 방식에 있어서 [변수]와 [상수]의 차이점은 뭘까? 불변하다와 불변하지 않다의 차이점은 뭘까? 일단 큰 그림은 스파르타 코딩클럽 [JS 문법 종합반 ] 3주차 데이터 타입 부분 강의자료를 보자. (개인 pc에 저장함,링크는 생략) 말로 설명해 보자. [변수]와 [상수]의 차이점은 메모리에서 변수 영역의 주소값이 바뀔 수 있으면 [변수], 바뀌지 못하면 [상수]다. 변수 부분의 주소값은 항상 메모리의 데이터 영역중 하나를 가리키게 된다. 여기서 [변수]에 대한 변수 영역 메모리라면 어떤 데이터 영역을 가리킬지 그 주소를 바꿔줄 수 있다. 그래서 아래처럼 a 라는 [변수] 에 새로운 값이 할당되면 7이라는 값의 주소가 메모리의 데이터 영역에 새로 생기게 되고 메모리에서 a의 변수 .. 더보기