분류 전체보기
[JavaScript] scope, hoisting
[JavaScript] scope, hoisting
2021.03.09scope 이해하기 Scope란? 변수 혹은 함수를 선언하게 될 때, 해당 변수 혹은 함수가 어디까지 유효한 지 범위를 나타내는 개념입니다. scope의 범위에는 Global, function, block이 있습니다. Global은 모든 범위(전역)에서 사용 가능한 것을 의미합니다. Function은 특정 함수 내부에서만 사용 가능한 것을 의미합니다. Block은 if문, switch문, for문을 작성하게 될 때, 중괄호로 코드를 작성하게 되는데 중괄호로 감싸진 블록 내부에서만 사용 가능한 것을 의미합니다. scope는 자바스크립트의 문법이라기 보단 작동 원리라고 이해하는 것이 좋습니다. Global, function scope의 예입니다. const value = 'hello!'; // global ..
[JavaScript] spread, rest
[JavaScript] spread, rest
2021.03.08spread 연산자 기존의 객체 혹은 배열을 참조해서 새로운 객체 혹은 배열 등을 만들고 싶을 때 사용하는 연산자입니다. 또한, 함수의 인자에서도 사용가능합니다. const slime = { name : '슬라임' }; const cuteSlime = { ...slime, // slime 객체가 가지고 있는 정보를 다 가져옴 attribute: 'cute' }; const purpleCuteSlime = { ...cuteSlime, // cuteSlime 객체가 가지고 있는 정보를 다 가져옴 color: 'purple' }; const greenCuteSlime = { ...purpleCuteSlime, // 덮어쓰기도 가능하다. color: 'green' }; console.log(purpleCuteS..
[JavaScript] 함수의 기본 파라미터, 조건문 더 스마트하게 쓰기, 비구조화 할당
[JavaScript] 함수의 기본 파라미터, 조건문 더 스마트하게 쓰기, 비구조화 할당
2021.03.02함수의 기본 파라미터 함수를 호출할 때, 원래 넣어야 할 파라미터를 넣지 않게 됐을 경우, 기본 값으로 사용할 파라미터를 지정하는 것을 의미합니다. 아래 코드와 같은 경우에는 함수 호출 인자로 아무것도 넣어주지 않을 경우 오류를 발생하게 됩니다. function calculateCircleArea(r) { return Math.PI * r * r; } const area = calculateCircleArea(4); console.log(area); // 50.2654~~~~ 출력. // 만약 아무것도 넣어 주지 않으면 NaN을 출력한다. 아무것도 넣지 않으면, NaN을 출력하게 됩니다. 아무것도 넣지 않아도 실행되게끔 하고 싶으면 어떻게 해야 될까요? 바로 단축 평가 논리 계산법을 사용하면 됩니다. f..
[JavaScript] 삼항연산자, Truthy와 Falsy, 단축 평가 논리 계산법
[JavaScript] 삼항연산자, Truthy와 Falsy, 단축 평가 논리 계산법
2021.03.01삼항 연산자 condition ? true : false; 조건이 참이면 true를 반환하고, 거짓이면 false를 반환합니다. true 혹은 false 위치에 어떠한 값이 와도 무방합니다. 결과에 따라 해당 값을 반환합니다. const array = []; let text = array.length === 0 ? '배열이 비어있습니다.' : '배열이 비어있지 않습니다.'; console.log(text); // '배열이 비어있습니다.'출력. 현재 array 배열의 길이가 0인 것이 true 이므로 true의 값인 '배열이 비었습니다.'가 출력됩니다. 만약 array 배열의 길이가 0이 아니라면 조건의 결과가 false 이므로 '배열이 비어있지 않습니다.'가 출력될 것입니다. const condition..
[백준] 14503번 - "로봇 청소기" (Java)
[백준] 14503번 - "로봇 청소기" (Java)
2021.02.28www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 설명 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는..
[백준] 14502번 - "연구소" (Java)
[백준] 14502번 - "연구소" (Java)
2021.02.27www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net - 난이도 : 골5 dfs와 bfs를 공부를 조금 했다면 충분히 풀 수 있는 문제라고 생각합니다. dfs, bfs 둘 다 활용해서 풀 수 있고 dfs만 활용하여 풀 수도 있습니다. 간단하게 먼저 설명하자면, 재귀 호출을 이용하여 map 배열을 탐색하며 벽을 3개 세웁니다. 탐색은 map 배열로 하지만, 바이러스 퍼트리기는 copy 배열로 진행합니다. 벽을 3개 세웠으면, bfs 탐색을 통해 바이러스를 퍼트립니다. 퍼트린 바..
[백준] 15681번 - "트리와 쿼리" (Java)
[백준] 15681번 - "트리와 쿼리" (Java)
2021.02.26www.acmicpc.net/problem/15681 15681번: 트리와 쿼리 트리의 정점의 수 N과 루트의 번호 R, 쿼리의 수 Q가 주어진다. (2 ≤ N ≤ 105, 1 ≤ R ≤ N, 1 ≤ Q ≤ 105) 이어 N-1줄에 걸쳐, U V의 형태로 트리에 속한 간선의 정보가 주어진다. (1 ≤ U, V ≤ N, U ≠ V) www.acmicpc.net 난이도 : 골5 트리 연습하기 좋은 문제라고 생각합니다. 트리 만드는 법을 배울 수 있습니다. 그리고 이 문제도 테스트 케이스 문제라서 각 테스트 케이스마다 문제를 해결하고자 하면 시간 초과가 날 수 있습니다. 미리 문제를 다 풀고 테스트 케이스 별로 결과만 출력하는 것을 추천합니다. 이 문제는 힌트가 아주 잘 나와있어 힌트에 나와있는 의사코드(ps..
[백준] 17425번 - "약수의 합" (Java)
[백준] 17425번 - "약수의 합" (Java)
2021.02.25www.acmicpc.net/problem/17425 17425번: 약수의 합 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net - 난이도 : 골5 약수 개념이 가미된 전형적인 테스트 케이스 문제입니다. 몇 가지 사항만 주의해준다면 충분히 풀 수 있습니다. 시간 복잡도는 해당 자연수의 약수의 합을 저장(fx)하는 코드 NlgN, 이전 약수의 합들을 저장(dp)하는 코드 N, 테스트 케이스(while) 갯수만큼 코드를 진행하는 T, 즉, NlgN + N + T에서 N은 NlgN보다 작..
[패스트캠퍼스] 프론트엔드 인강 환급 챌린지(4) JavaScript - 객체 안에 함수 넣기, 프로토타입과 ES6클래스
[패스트캠퍼스] 프론트엔드 인강 환급 챌린지(4) JavaScript - 객체 안에 함수 넣기, 프로토타입과 ES6클래스
2021.02.24수강한 클립명 (1) 14. 객체 - 객체 안에 함수 넣기 (2) 30. 프로토타입과 클래스 - 객체 생성자 (3) 32. 프로토타입과 클래스 - ES6 Class 객체 안에 함수 넣기 아래 예제 코드에 대해 간단 설명 하겠습니다. 먼저 say : function say() 함수 안에 있는 this는 객체 안의 자기 자신을 가리킵니다. 즉 아래 코드에서의 this는 dog 객체 자기 자신을 가리키게 됩니다. this.sound는 dog.sound와 같습니다. say : function() 함수는 위의 say : function say() 와 같은 역할을 합니다. 좀 더 간결하게 사용할 수 있다는 것만 알아두시면 됩니다. say() 함수도 마찬가지입니다. 똑같이 동작하지만, 이렇게 더 간결하게 사용할 수 ..