전체 글
-
알고리즘 시간 복잡도(Time Complexity)WEB & CS 2023. 4. 25. 21:01
프로그래머스나 백준에서 알고리즘 문제를 풀다보면 시간 초과를 경험하는 순간이 있습니다.그러면 시간 초과는 왜 발생하고, 알고리즘에서 반복문을 최소화 해야 하는 이유에 대해 설명하겠습니다. 우선, 시간 복잡도라는 개념에 대해 알고 있어야합니다.시간 복잡도란, '입력한 값에 따라 연산이 시작되었을 때 연산 횟수에 비해 시간이 얼만큼 소요되는지?'를 의미합니다. 1. O(1)- 입력값이 증가해도 시간은 일정하다.- 반복문을 사용하지 않음.2. O(n)- 입력값의 증가에 따라 일정하게 시간이 증가한다.- 1번의 반복문을 사용 (반복문의 반복 횟수만큼 시간이 증가한다.)3. O(log n)- 로그 복잡도라고 부른다.- 한번 실행될 때, 그 다음 해답을 찾는 경우의 수를 절반씩 줄여나가는 방법으로 대표적인 예로는 ..
-
자바 Arrays.sort 사용하기(String[], int[] Integer[]) / Collections.reverseOrder()Java 2023. 4. 23. 20:47
배열을 오름차순, 내림차순으로 정렬하고 싶을 때, 반복문을 코드를 작성해 정렬하는 방법이 있을 수 있습니다. 하지만, java.util.Arrays 정렬을 이용하는 방법이 더 간단하다고 생각합니다. 그러면, Arrays.sort를 이용해 배열 정렬하는 법과 주의점을 작성해보도록 하겠습니다. - 오름차순 Arrays.sort()를 이용하면, 간편하게 배열을 오름차순으로 정렬시킬 수 있습니다. - 내림차순 Arrays.sort()와 Collections.reverseOrder()를 이용하면, 간편하게 배열을 내름차순으로 정렬시킬 수 있습니다. - 관련 에러 Collections.reverseOrder()를 이용할 때, String[]은 컴파일 에러가 나지 않습니다. 하지만 Integer가 아닌 int 배열을..
-
자바 static변수, 메서드Java 2023. 4. 18. 21:28
개발을 하다보면 변수나 메서드 앞에 static이라는 것을 가끔 확인해 볼 수 있습니다. 그렇다면, 일반적으로 사용하는 방식과 static을 붙여 사용하는 것은 어떤 것이 다를까? 검색을 하며 찾아보면, "정적"이라는 단어가 보이는데, 개인적으로는 100% 이해하기 힘들어 "정적"이라는 표현은 최대한 줄여 설명할 예정입니다. 우선, static 변수나 메서드는 메모리의 static영역에 할당됩니다. * 참고 : 기본 자료형 변수는 stack영역 / 참조형 변수는 heap영역에 할당됩니다. 그렇다면 static영역에 변수나 메서드가 할당된다는 것은 어떤 것을 의미할까? - 자바의 가비지컬렉터가 관여를 하지 않으며, 모든 객체가 메모리를 공유할 수 있는 것을 의미합니다. - 가비지 컬렉터가 관여하지 않기 때..
-
자바 call by value, call by referenceJava 2023. 4. 17. 21:34
자바 개발을 하다보면 자료형과 참조형에 대한 변수를 접하게 된다. 참조형과 자료형 변수를 정확하게 이해하지 않고 이용하게 된다면 call by value, call by reference가 뭔지 이해하기 어려울 것이라 생각한다. call by value - 변수 선언시 값을 복사하여 처리한다. - 값을 복사하여 처리하기 때문에 메모리 사용량을 고려해야한다. - 기본 자료형(int, boolean, char...)이 call by value로 동작한다. call by reference - 변수 선언 시, 주소를 참조하여 값을 출력 - call by value처럼 값을 복사하지 않고 참조하기 때문에 빠른 처리 속도가 장점이다. - 참조형 변수(Array, List...)가 call by reference로 ..
-
자바 문자열 대소문자 전환Java 2023. 3. 15. 13:38
대문자와 소문자가 혼합된 String 변수가 있다고 한다면, 전체를 소문자로 혹은 전체를 대문자로 전환하는 메소드가 존재한다. toUpperCase() : 전체를 대문자로 전환 toLowerCase() : 전체를 소문자로 전환 class Ex { public int ex() { String str = "Hello Java"; String temp1 = str.toUpperCase();// HELLO JAVA String temp2 = str.toLowerCase();// hello java } }
-
자바 substring, split 사용하기Java 2023. 3. 15. 13:32
자바에서 String 관련 메소드 중에 자주 사용하는 메소드를 소개하겠습니다. String메소드의 index는 0부터 시작 substring : 문자열의 특정 부분을 자르는데 사용한다. - substring(int start) : start부터 끝까지 자른다. - substring(int start, int end) : start부터 end까지 자른다. class Ex { public int ex() { String str = "hello"; str.substring(2); // llo str.substring(2,5);// llo str.substring(-1); // OutOfBoundsException 에러 } } split : 문자를 특정 구분자를 기준으로 잘라서 배열에 담는다. - split(S..
-
자바 제곱근, 제곱 사용하기Java 2023. 3. 15. 13:15
제곱근, 제곱 자바에서 제곱근과 제곱을 사용하려면 Math 클래스를 사용해야한다. Math클래스란, 수학에서 자주 사용하는 상수들과 함수들을 미리 구현해 놓은 클래스이다. Math 클래스는 랜덤한 수 추출, 올림, 반올림, 제곱, 제곱, 두 수의 크기 비교 등의 메소드를 제공한다. 제곱근 자바에서 제곱근을 구하려면, Math.sqrt()를 사용하면 된다. 변수가 double형이기 때문에 필요하다면 int형으로 전환해 사용하면 된다. class Ex { public int ex() { // Math.sqrt(double a); : a의 제곱근 double result = Math.sqrt(4); //4의 제곱근 } } 제곱 자바에서 제곱을 구하려면, Math.pow()를 사용하면 된다. 변수가 double..
-
자바스크립트 상황별 thisJavaScript 2023. 2. 7. 22:32
객체 - 상태(state)를 나타내는 프로퍼티 + 동작(behavior)을 나타내는 메서드 - 메서드는 프로퍼티를 참조하고 변경할 수 있어야한다. 2022.10.25 - [javascript] - 자바스크립트 객체 생성 방법 this - 생성자 함수 또는 생성된 인스턴스를 참조하는 변수로 함수를 호출하면 함수 내부에 전달된다. - 객체의 메서드 / 생성자 함수 내부에서만 의미가 있고 나머지는 전역변수로 window를 잡는다. - strict mode가 적용된 일반 함수 내부의 this에는 undefined로 나온다. - 화살표 함수는 this가 적용되지 않는다. (부모의 함수를 받아서 사용) bind / call / apply : 일반 함수는 window가 this를 바라보는데 이것들을 쓰면 this를 ..