Programming 14

[Javascript] let과 var의 차이 (var hoisting) / var 보다 let이 추천되는 이유

참고 강의[드림코딩] 자바스크립트 3. 데이터타입, data types, let vs var, hoisting | 프론트엔드 개발자 입문편 (JavaScript ES5+) https://youtu.be/OCCpGh4ujb8?feature=shared강의에서는 let과 var의 차이 외에도자바스크립트 내에서의 여러가지 data type들,그리고 그 타입들의 특징들을 세세하게 알려준다. 주먹구구식으로 javascript를 접하면서 들었던여러 의문점 중 하나가 바로 let과 var의 차이.왜 인텔리제이에서 var를 쓰면 계속 let을 쓰는걸 추천해... 라는 문장이 떴는지 이제 알 수 있다 ^-^... ◾변수 선언 시, var를 쓰지 않는 이유  ⭐ 아래와 같은 var의 유연성들이, 위험부담을 가져오기 때문이..

[Javascript] HTML에 자바스크립트 파일을 연결하는 여러가지 방법 (async 속성과 defer 속성)

참고 강의[드림코딩] 자바스크립트 2. 콘솔에 출력, script async 와 defer의 차이점 및 앞으로 자바스크립트 공부 방향 | 프론트엔드 개발자 입문편 (JavaScript ES5+) https://youtu.be/tJieVCgGzhs?feature=shared 엘리 쌤이 소개해주는 방법은 여러가지가 있었다.Head 안에 script 태그 작성Body 안, 가장 끝에 script 태그 작성 ☜ 이게 평소 내가 사용하던 방법.Head 안, async 속성 사용하기Head 안, defer 속성 사용하기 ☜ 이게 가장 효율적이라고 한다.내가 기존에 사용하던 2번 방법은 지금까지 왜 주로 사용되어왔던건지,그리고 4가지 방법 중 4번 방법이 가장 효율적인 이유는 무엇인지를 중점으로 남겨보고자 한다.난 ..

.

2024. 05. 29 ~ 자바스크립트를 너무 주먹구구식으로 익혔다.필요한 기능을 구현하기 위해 다른 사람들이 어떤 식으로 구현했는지 찾아보고,그 코드를 내 코드에 이식하는 식으로 해왔는데... 이러다 보니까 var이 뭐고 let은 뭔지Event Listener가 정확히 어떻게 동작하는지함수가 파라미터로 전달되는건 알겠는데 굳이 왜 이렇게 쓰는건지 ;; 등등아주 기초적인 걸 모르는 채로 무작정 부딪히고 있으니코드를 자유롭게 응용하는 것에 있어서 한계점이 느껴졌다.그리고 이런식으로 익히다간 버릇도 나쁘게 들어서 굳어질 것 같고... 그래서 버릇 더 잘못 들여지기 전에기초부터 탄탄하게 익혀보려고....🙄 (기탄수학이야 뭐야)  https://youtube.com/playlist?list=PLv2d7VI9O..

[JAVA / 자료구조] PriorityQueue(우선순위 큐)의 개념 / PriorityQueue 클래스 기본적인 사용법 및 메소드

PriorityQueue개념일반적인 큐(Queue)는 FIFO (First In, First Out) 구조로 저장되는 선형 자료구조.즉, 먼저 들어간 데이터가 가장 먼저 나오는 구조.( https://eunzzzzz1.tistory.com/29 - Queue(큐)의 개념 / Queue(큐) 클래스 기본적인 사용법 및 메소드 )하지만 우선순위 큐 (Priority Queue) 는 들어간 순서와 상관없이 우선순위가 높은 데이터가 먼저 Out 되는 자료구조.우선 순위가 높은 요소는 우선순위가 낮은 요소보다 먼저 Queue에서 제외되고,두 요소의 우선순위가 같을 때는 Queue에 들어가있는 순서에 의해 결정된다.Heap 을 이용해 구현하는 것이 가장 효율적이라고 함.구현 방법enqueuedequque배열 (un..

Programming/JAVA 2024.05.24

[알고리즘] 재귀함수 再歸函數, recursion (JAVA)

재귀함수?정의자기 자신을 호출하는 함수.정의 단계에서 자신을 재참조하는 함수를 뜻한다. 어떤 사건이 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적(recursive)이라고 한다.  재귀함수의 기본 구조기본 조건 (Base Case)재귀 호출을 멈추는 조건.이 조건을 만나면 더 이상 자기 자신을 호출하지 않는다.재귀 호출 (Recursive Call)함수가 자기 자신을 호출하는 부분.일반적으로, 문제를 조금 더 작은 부분으로 쪼개서 호출한다.  예제 1 : 팩토리얼 계산하기팩토리얼의 정의n! = n * (n-1)!자바 코드로 구현해보기public class Factorial { public int factorial(int n) { if(n == 0 || n == 1) return 1;..

[수학] 소수 (Prime) 판별하기 - 제곱근 활용

소수 (Prime) 판별하기 - 제곱근 활용 소수란, 1과 자기 자신만을 약수로 가지는 수를 뜻한다. 예를 들어, 6은 1, 2, 3, 6을 약수로 가지기 때문에 소수가 아니지만,7은 1과 7(자기 자신) 을 약수로 가지기 때문에 소수이다.  주어진 수 n이 소수인지 아닌지는 어떻게 판별할 수 있을까?n을 2부터 (n-1)까지의 수로 나누어서, 나누어 떨어지는 수가 없으면 그 수는 소수일거다.하지만 n이 소수인 동시에 너무 큰 숫자라면, 하나하나 나누어 보기에는 매우 비효율적이다.그렇기 때문에, n의 제곱근을 이용하면 매우 효율적이게 값을 구할 수 있다. n의 제곱근 m을 구한다.n을 2부터 m까지 차례로 나누어 보았을 때, 나누어 떨어지는 수가 있다면 그 수는 소수가 아니다.반대로 m까지 나누어보았음에..

[JAVA] 이름 붙은 반복문 (Labeled-Loop)

이름 붙은 반복문 (Labeled-Loop)Java 에서는 반복문에 이름을 지정해 사용할 수 있다!반복문이 여러 번 중첩되어 있을 때, 반복문 각각에 이름을 붙여주어break; 와 continue;가 작동할 범위를 지정해줄 수 있다.  구현 먼저, 일반적인 for문이다.public static void main(String[] args) { for (int i = 1; i   k가 3이 되었기 때문에, break; 문과 가장 가까운 for문 ( = 안쪽 for문 ) 을 벗어난 후,가장 바깥 쪽의 for문을 실행한다.   다음은, 바깥 for문에 LoopA라는 이름을 붙이고,안 쪽에 있는 for문의 k가 3이 되었을 때 LoopA를 break 하도록 해보자.public static void main(..

Programming/JAVA 2024.05.17

[그래프 탐색] DFS (Depth First Search, 깊이 우선 탐색)

개념정의하나의 정점에서 시작해 모든 정점들을 한 번씩 방문하는 작업종류DFS (Depth First Search, 깊이 우선 탐색)루트 노드에서 시작해서 가장 깊은 곳까지 탐색한 후, 다음 분기로 넘어간다.재귀함수 또는 Stack으로 구현 가능하다.BFS (Breadth First Search, 너비 우선 탐색)루트 노드에서 가장 가까운 정점들을 차례로 방문한 뒤,방문했던 정점들과 가장 가까운 정점들을 또 다시 탐색하는 방식.  DFS (Depth First Search, 깊이 우선 탐색) >시간 복잡도노드의 개수를 V, 간선의 개수를 E라고 할 때, 인접 행렬에서의 시간 복잡도 : O(V²)인접 리스트에서의 시간 복잡도 : O(V+E)장점현재 경로 상의 노드들만 기억하면 되므로 저장공간이 비교적 적게 ..

[JAVA / 자료구조] Queue(큐)의 개념 / Queue(큐) 클래스 기본적인 사용법 및 메소드

Queue?자료구조 중, 선형 자료구조로 분류된다.한 쪽 끝에서는 삽입만, 다른 한 쪽 끝에서는 삭제연산만 이루어지는 유한 순서 리스트.가장 먼저 온 사람이 가장 먼저 작업을 보고 나가는 '대기줄' 이라는 뜻을 지니고 있듯,선입 선출 (FIFO : First In First Out) 성격을 지니고 있다.가장 먼저 들어온 원소가 가장 먼저 나간다.Stack은 후입선출 (LIFO : Last In First Out) 구조. 가장 나중에 들어온 원소가 가장 먼저 나간다. JAVA 에서 Queue 사용하기1. 선언하기import java.util.Queue;import java.util.LinkedList;class Solution { public void solution() { // 삽입할 자료형이 정해져 ..

Programming/JAVA 2024.04.22

[JAVA] Iterator (반복자) 의 사용법

Iterator (반복자) An Iterator is an object that can be used to loop through collections, like ArrayList and HashSet. It is called an "iterator" because "iterating" is the technical term for looping. To use an Iterator, you must import it from the java.util package. Iterator (반복자)는 ArrayList나, HashSet 같은 컬렉션을 순회할 때 (looping) 사용될 수 있는 객체입니다. "looping"의 기술적인 용어가 "iterating" 이기 때문에 해당 객..

Programming/JAVA 2024.04.19