전체 글
-
[프로그래머스] 전력망을 둘로 나누기 (위클리 챌린지 9주차) Javascript알고리즘 2021. 10. 5. 12:49
문제 내용 하나의 트리 형태로 값이 주어진다. 이 중에서 하나의 연결된 edge 를 자르면 2개의 트리가 구성이 된다. 나눠진 2개의 트리의 각각 node 의 수가 있는데 그 수 끼리의 차를 구해라. 제한사항 n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다. wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전력망의 v1번 송전탑과 v2번 송전탑이 전선으로 연결되어 있다는 것을 의미합니다. 1 ≤ v1 < v2 ≤ n 입니다. 전력망 네트워크가 하나의 트리 형태가 아닌 경우는 입력으로 주어지지 않습니다. 전체 코드 function solution(n, wires) { // 1. 답을 저장할 answer 를 생성함 (정답은 최소값..
-
var, let, const 차이점 (블록 스코프, 함수 스코프)자바스크립트 2021. 10. 4. 22:09
var 와 let 의 차이점 let 은 여러 번 선언할 수 없다. let hogumachu = "hogumachu"; let hogumachu = "not hogumachu"; // ReferenceError: Identifier 'hogumachu' has already been declared 이미 let 으로 선언되어 있기 때문에 에러가 발생한다. var 는 가능하다. let 은 선언하기 전에 사용이 불가능하다. console.log(hogumachu); // ReferenceError: Cannot access 'hogumachu' before initialization let hogumachu = "hogumachu"; 초기화 되기 전에 사용을 하여서 에러가 발생한다. console.log(ho..
-
[프로그래머스] 숫자의 표현 Javascript알고리즘 2021. 10. 4. 17:57
문제 내용 자연수 n 을 연속한 자연수들의 합으로 표현해라. 예를 들어, n = 15 라고 했을 때 15 = 1 + 2 + 3 + 4 + 5 15 = 4 + 5 + 6 15 = 7 + 8 15 = 15 이렇게 나타낼 수 있다. 전체 코드 function solution(n) { // 1 let result = 0; // 2 let i = 1; // 3 let j = 0; // 4 for (; i = n * 2) { break; } } // 5 for (; i = n 이라 표현했지만 읽기 쉽게 양 쪽에 2를 곱하여서 i * (i + 1) >= n * 2 라고 표현했다. n 은 15 이므로 i * (i + 1) 이 15 * 2 이상 일 때 반복문이 종료된다. i = 5 일때 값이 30 이 되므로 종료된다. ..
-
[프로그래머스] 같은 숫자는 싫어 Javascript알고리즘 2021. 10. 4. 17:04
문제 내용 배열 arr 은 숫자 0 ~ 9 로 이루어져 있음.배열에서 연속적으로 나타나는 숫자는 하나만 남기고 모두 제거하고순서가 유지되어야 함. 예를 들어, arr return [3, 3, 3, 2, 2, 1] [3, 2, 1] 이렇게 순서도 유지되어야 함. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수 전체 코드 function solution(arr) { // 1 let previousValue = arr[0]; // 2 let newArr = [previousValue]; // 3 for (let i = 1; i < arr.length; i++) { // 4 if (previousValue != arr[i..
-
[프로그래머스] 없는 숫자 더하기 Javascript알고리즘 2021. 10. 4. 16:44
문제 내용 배열 (numbers) 는 0 부터 9 까지의 숫자가 주어짐. 배열 안에는 없는 숫자가 존재 (0 ~ 9 중에서) 이 없는 숫자를 모두 더해서 return 해라. 예를 들어, numbers return [0, 1, 2, 3, 4, 5] 30 (6 + 7 + 8 + 9) 이렇게 푸는 방식이다. 전체 코드 function solution(numbers) { return 45 - numbers.reduce((sum, currentValue) => sum + currentValue); } 먼저 0 부터 9 까지 의 총합 45 (0 + 1 + ... + 8 + 9) 를 구하고 그 값에 numbers 배열의 합을 뺀다. numbers 배열의 길이가 1보다 크거나 같고 9보다 작거나 같고 numbers 의..
-
[프로그래머스] 완주하지 못한 선수 Javascript알고리즘 2021. 10. 4. 16:29
문제 내용 마라톤 참가자 중에서 완주를 하지 못한 1명을 찾아라 마라톤 참가자 (participant) 와 마라톤 완주자 (completion) 이 주어짐. 예를 들어, 참가자 (participant) 완주자 (completion) return ["홍길동", "김아무개"] ["홍길동"] "김아무개" 이렇게 "홍길동" 만 완주에 성공하였으므로 "김아무개" 를 return 하면 된다. 전체 코드 function solution(participant, completion) { let index = 0; // 1 participant.sort(); // 2 completion.sort(); // 3 // 4 for (index; index < completion.length; index++) { // 5 if ..
-
Boolean 형 변환자바스크립트 2021. 10. 3. 13:13
Boolean 형 변환 let emptyStr = ""; let str = "0"; let zero = 0; let one = 1; emptyStr 은 빈 문자형 str 은 "0" 인 문자형 zero 는 0 인 숫자형 one 은 1 인 숫자형 이렇게 값들을 할당했다. 하나씩 console 해보면 console.log(Boolean(emptyStr)); 결과 값으로는 false 가 나온다. 문자형이 비어있기 때문에 false 가 된 것이다. console.log(Boolean(str)); 이번엔 값이 true 로 나온다. "0" 이면 false 라고 생각했는데 true 가 나왔다. 문자형이 비어있지 않기 때문에 true 가 된 것이다. console.log(Boolean(zero)); 값이 false 로 ..
-
HTML 에서 JavaScript 불러오기자바스크립트 2021. 10. 3. 00:28
HTML 에서 JavaScript 불러오기 외부 js 파일을 부르고 내부에 있는 script 를 실행시키면 외부 js 파일만 실행된다. (내부에 있는 script 는 실행되지 않음) 내부에 있는 script 만 실행시키면 내부에 있는 script 가 정상적으로 실행된다. 존재하지 않는 외부 js 파일을 부르고 내부에 있는 js 를 실행시키면 외부 js 파일만 실행된다. 그러나 외부 js 파일이 존재하지 않으므로 아무 것도 실행되지 않는다. 그렇다면 HTML 에서 어떤 방법으로 JavaScript 를 불러와야 하는가? HTML 안에 직접 Script 작성 아주 간단한 Script 일 때만 사용 외부에서 js 파일 불러오기 Script 가 길어질 때 사용 성능적으로 더 좋음 외부 js 파일을 어떻게 불러오는..