[DAY 10] VanillaJS를 통한 자바스크립트 기본 역량 강화Ⅰ(2)
·
Frontend/프로그래머스 FE 데브코스
명령형 프로그래밍과 선언적인 프로그래밍 방식의 이해 1. 명령형 : 컴퓨터가 수행할 명령들을 순서대로 써 놓은 것 2. 선언형 : 프로그램이 어떤 방법으로 해야하는 지가 아닌 무엇이 같은 지를 설명하는 경우 👉 HTML, SQL 명령형 프로그래밍과 선언적인 프로그래밍 방식: 예시 1-1 1. double() 함수 만들기 1) 명령형 방식 function double(arr) { let result = []; for(let i=0; i number*2) } .- 코드가 간결하며, 유지보수하기 쉽다. 명령형 프로그래밍과 선언적인 프로그래밍 방식: 예시 1-2, 2 💡 만약 배열에 숫자가 아닌 것들이 들어온다면 ? 1) 명령형 function double(arr) { let result = []; for(le..
[DAY 9] VanillaJS를 통한 자바스크립트 기본 역량 강화 I (1)
·
Frontend/프로그래머스 FE 데브코스
사전 문제 1 function Dog(name, age) { this.name = name; this.age = age; } const dog = Dog('happy', 3); console.log(dog.name); 위 코드는 오류가 발생하는데, 그이유는 Dog 함수는 반환 값이 없기에 dog엔 undefiend 값이 들어가게 되고, undefined.name을 찾을 수 없기에 오류가 발생한다. 또한 추가로 함수안에 있는 this는 window를 가르키기에 window.name을 찍으면 happy 가 나온다 ✅ 왜 this가 window를 가르킬까 ? - 그 이유는 함수를 new를 통해 생성하지 않았기 때문이다. - new를 사용하지 않고 함수를 선언할 시 함수 내부의 this는 window를 가르킨다..
[프로그래머스] 여행 경로
·
Algorithm/Solution
코딩테스트 연습 - 여행경로 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📚 난이도 : Level 3 💡 풀이 과정 : 굉장히 시행착오가 많았던 문제... 일단 코드를 좀 더 간단하게 작성하기 위해서는 주어진 tickets배열을 객체 형태로 변환해주는 것이 편하다. (아래와 같은 형태) const graph = {}; for(const [a,b] of tickets){ if(graph[a] === undefined) { graph[a] = []; } graph[a].push(b); } 왜냐하면 배..
[Day 8] JavaScript 주요 문법 (8)
·
Frontend/프로그래머스 FE 데브코스
자료구조&알고리즘 - 코딩 테스트 준비 방법 1. 알고리즘을 잘 공부하는 법 1) 문제 풀 때 중요한 것 항상 여러가지 풀이법이 있음을 기억 항상 예외가 있을 수 있음 내 답이 베스트인지 의심 시행착오는 기록 ! 다른 사람의 코드를 많이 보자 너무 쉽게 포기하진 말고, 너무 오래 끌지도 말자 2. 코딩 테스트 준비 방법 1) 나의 성향 파악 미리 생각하고 의사 코드를 작성해야 잘 풀리는 사람 일단 코드를 작성하면서 풀어야 잘 풀리는 사람 ( 나 ) 2) 메모하기 : 코드에 주석을 달거나, 노트에 메모하면서 풀자 3) 디버깅 하면서 풀기 3. 좋은 코드를 만드는 방법 1) 간결하고 가독성 좋은 코드 변수, 함수 이름 잘 정하기 중복 코드 제거 함수형 프로그래밍(고차 함수 이용하기) 2) 가지치기 3) 자바..
[Day 6] JavaScript 주요 문법 (6)
·
Frontend/프로그래머스 FE 데브코스
자료구조&알고리즘 - BFS, DFS [Algorithm] DFS 정리 (tistory.com) [Algorithm] DFS 정리 1. DFS란? - DFS 는 깊이 우선 탐색 을 말합니다. - 루트 노드에서 시작하여, 해당 노드들의 자식을 우선적으로 탐색합니다. * 미로찾기로 예시를 들면, 한 방향으로 갈 수 있을 때까지 계속 가다가 aeunhi99.tistory.com [Algorithm] BFS 정리 (tistory.com) [Algorithm] BFS 정리 1. BFS란? - BFS 는 너비우선탐색을 말합니다. - 루트 노드에서 시작하여 인접한 노드를 탐색하는 방법입니다. Q. 너비우선 탐색을 하면 순서가 어떻게 될까요? A. 0 - 1 - 2 - 3 - 4 - 5 -6 1) 특징 - 두 노 ae..
[프로그래머스] 큰 수 만들기(JavaScript)
·
Algorithm/Solution
코딩테스트 연습 - 큰 수 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Level 2 풀이 과정 : 제거하려는 수가 k개라면 제거한 후 남는 문자열 길이는 문자열.length - k 이다. 나는 제거하려는 수를 기준으로 안두고 length-k로 만들 수 있는 최대 수를 기준으로 하였다. 제거 하여 가장 큰 수가 되기 위해서는 length-k (제거후 남는 문자열 길이) 가 남는 한에서 처음으로 오는 수가 가장 커야한다. 예를들어 본 예제인 1924에서 가장 처음으로 오는 수는 9..
[프로그래머스] 입국심사 (Javascript)
·
Algorithm/Solution
코딩테스트 연습 - 입국심사 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Level 3 풀이과정 : 맨 처음에 이 문제를 봤을 땐 이걸 이분탐색으로 어떻게 풀어야 될지 감이 안왔는데 그 이유가 나는 n을 기준으로 time의 각 요소에 얼마를 곱해야 되는지 생각을 해서 풀이가 어려웠다. 생각을 반대로 times를 기준으로 계산한 값이 n이 될 수 있을 때를 생각을 해보면 이분탐색으로 풀 수 있구나를 생각할 수 있었다. 그 후 이분 탐색 코드를 작성하다보니 이분탐색을 위해 left = 1이..
[프로그래머스] 가장 큰 수 (JavaScript)
·
Algorithm/Solution
코딩테스트 연습 - 가장 큰 수 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Level 2 풀이과정 : 배열을 정렬할 때 compare함수를 어떻게 작성하는가에 대한 문제였다. 처음에는 일일히 경우의 수를 생각해서 해보다가 경우의 수가 너무 많다는 것을 알게됐고 간단한 방법으로 compare함수를 ab > ba 순으로 정렬 할 수 있도록 작성할 수 있었다. 하지만 테케 1개를 통과를 못했는데 도저히 모르겠어서 질문게시판을 보다가 답이 0일때 문자열로 처리되어 0000 이런식으로 출력되어..
[Day 5] JavaScript 주요 문법 (5)
·
Frontend/프로그래머스 FE 데브코스
💡 실습 문제 - 가장 먼 노드 [프로그래머스] 가장 먼 노드(JavaScirpt) (tistory.com) [프로그래머스] 가장 먼 노드(JavaScirpt) 코딩테스트 연습 - 가장 먼 노드 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 aeunhi99.tistory.com 자료구조&알고리즘 - 트리 1. 트리 - 방향 그래프의 일종으로 정점으로 가르키는 간선이 하나 밖에 없는 구조 1) 용어 Degree(차수) : 한 정점에서 나오는 간선의 개수 Level : 루트부터 리프노드까지 단계(루트가 0,1로 시작하여 커진다) 2) 특징 루트 정점을 제외한 모든 정점은 반드시 ..