Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 작은수제거하기
- java list 저장
- 격파르타후기
- 항해15기
- java map 저장
- java기본자료형
- 격파르타장점
- java최솟값구하기
- javaJVM
- 비전공자sqld
- 항해99후기
- java map 출력
- java알고리즘문제풀이
- java set 출력
- java set 저장
- 인터프린터언어
- 컴파일
- javaJRE
- 프로그래머스
- java list 출력
- java 자료구조 활용
- sqld자격증합격
- 격파르타합격후기
- java알고리즘
- 격파르타비전공자
- 프로그래머스제일작은수
- 코딩부트캠프후기
- java참조자료형
- 노베이스부트캠프
- java map
Archives
- Today
- Total
코딩과 결혼합니다
코딩테스트 준비中 본문
728x90
1일 차 : 이중탐색 + SQL문
2일 차 : 연결리스트 + SQL문
3일 차 : 큐/스택 + SQL문
4일 차 : 문자열 알고리즘 + SQL문 (현재!)
알고리즘을 풀며 알게 된 깨알 지식들
- 정확한 중간 값 구하기
int mid = left + (right - left) / 2;
( right - left )를 해주면 큰 숫자가 들어왔을 때 생길 수 있는 오버플로우도 방지할 수 있다.
- static
public static int
- 공용 변수 : 클래스 수준에서 사용되는 공용 변수로 인스턴스마다 독립적인 값을 유지하지 않고 모든 인스턴스가 동일한 값을 공유한다. 여러 인스턴스 간에 데이터를 공유하고, 메모리 사용량을 줄이는 데 유용하다.
- 정적 메서드 : 인스턴스를 생성하지 않고도 호출할 수 있다.
- switch - case문
switch (token){
case "+":
stack.push(stack.pop() + stack.pop());
break;
case "-":
stack.push(-stack.pop() + stack.pop());
break;
case "*":
stack.push(stack.pop() * stack.pop());
break;
case "/":
int divisor = stack.pop();
stack.push(stack.pop() / divisor);
break;
default:
stack.push(Integer.parseInt(token));
}
- 제네릭 타입
public class Stack<T> {
class Node<T> {
private T data;
private Node<T> next;
public Node(T data) {
this.data = data;
}
}
...
- 타입 안정성 : 제네릭을 사용하면 컴파일 시에 타입 체크를 할 수 있어 잘못된 타입으로 인한 오류를 미리 방지한다.
- 코드의 재사용성 : 다양한 타입의 객체를 처리하는 일반적인 알고리즘을 작성할 수 있다.
- 컬렉션 활용 : 제네릭을 사용하면 잘못된 타입의 객체가 컬렉션에 저장되는 것을 방지할 수 있다.
- 코드 가독성 : 코드에서 타입 변환을 명시적으로 작성할 필요가 없어 코드가 간결해진다.
- 문자 입/출력
//문자열 출력하기
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
System.out.println(a);
}
Scanner로 문자열을 입력하 엔터를 누르면 변수 a에 그 문자열이 저장된다.
다음 System.out.println으로 이를 출력할 수 있다.
- String의 substring
String sub = my_string.substring(0,s);
String subend = my_string.substring(s + overwrite_string.length());
첫 번째 줄은 0번째 인덱스부터 2번째 인덱스를 남겨놓고 그 뒤의 문자열을 잘라낸다.
두 번째 줄은 s + overwrite_string.length() 인덱스 바로 전까지 잘라낸다.
- StringBuilder
StringBuilder newString = new StringBuilder();
- 가변성 : 가변적인 문자열을 다룰 수 있다. 문자열을 직접 수정, 추가, 삭제, 변경 등 다양한 조작이 가능하다.
이는 String 클래스와는 달리 문자열을 새로 생성하는 것이 아니라 내부 버퍼를 직접 조작하여 성능을 향상한다. - 성능 : 반복문을 사용하여 여러 문자열을 합치는 경우, 매번 새로운 문자열을 생성하는 것보다 이를 사용하는 것이 더 효율적이다.
- 메모리 관리 : 문자열 객체를 반복적으로 생성하거나 해제할 필요가 없어 메모리 관리 측면에서 효율적이다.
- charAt과 toCharArray
- charAt(index) : 주어진 인덱스에 해당하는 위치에 있는 문자 반환
- toCharArray() : 문자열을 문자 배열로 반환한다.
'청첩장 > 결혼식장 : 코린이의 저장소' 카테고리의 다른 글
| 230923 - 인텔리픽 모의 면접 후기 (0) | 2023.09.22 |
|---|---|
| YAML 코드 분석 (0) | 2023.08.07 |
| OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended (0) | 2023.08.05 |
| Failed to configure a DataSource 에러와 원인과 해결 방법 (0) | 2023.08.05 |
| NoSQL 과 RDBMS의 차이점과 장,단점 (0) | 2023.08.01 |