Collections
·
Coding Test
Collections 클래스는 Java에서 컬렉션 객체(List, Set, Map 등)를 조작하기 위한 유틸리티 메서드를 제공한다.데이터를 정렬, 검색, 변환하거나 통계 계산 등의 작업을 간단히 처리할 수 있음. Collections의 주요 특징1. 유틸리티 클래스컬렉션 데이터 구조를 조작하기 위한 다양한 정적 메서드를 제공한다.컬렉션의 정렬, 역순, 검색, 빈도 계산 등을 간단히 수행2. 범용적 사용List, Set, Map 등 모든 컬렉션 객체와 함께 사용 가능3. 안전성동기화된 컬렉션 생성 메서드( synchronizedList, synchronizedSet 등)를 제공해 스레드 안전성을 보장.4. 메서드 제공메서드 설명sort(List)리스트를 오름차순으로 정렬reverse(List)리스트의 순서..
ArrayList
·
Coding Test
백준 10811 바구니 뒤집기 문제를 푸는데 ArrayList로 선언하는 방식, 메서드가 기억이 안 나서 while문으로 해결했다. 생각난 김에 다시 복기할 겸 정리해보려고 한다. ArrayList의 주요 특징1. 동적 배열 (Resizable)배열 ( int[] )은 크기가 고정되지만, ArrayList는 동적으로 크기를 늘리거나 줄일 수 있다.2. 빠른 접근배열처럼 인덱스를 사용하여 O(1) 시간에 특정 요소에 접근할 수 있다.3. 메서드 제공메서드설명add(value)값 추가add(index, value)특정 위치에 값 삽입remove(index)특정 위치의 값 삭제set(index, value)특정 위치의 값 변경get(index)특정 위치의 값 가져오기size()리스트의 크기 반환clear()모..
HashSet이란?(+ TreeSet, LinkedHashSet)
·
Coding Test
코딩테스트를 풀면서 배열 문제를 HashSet으로 풀 때 더 간단하고 효율적인 것을 보고 HashSet에 대해서 정리를 하고 나도 배열 문제에서 HashSet을 사용해봐야겠다고 생각했다. HashSet 개념HashSet은 Java의 Set 인터페이스를 구현한 컬렉션 클래스로, 중복을 자동으로 제거하며 빠르게 원소를 저장하고 검색할 수 있는 자료구조이다. HashSet의 주요 특징1. 중복이 허용되지 않음같은 값이 여러 번 추가되면 자동으로 하나만 저장됨.2. 순서가 보장되지 않음List처럼 저장 순서를 유지하지 않음.3. 빠른 검색 속도 (O(1))HashSet은 내부적으로 해시 테이블(Hash Table)을 사용하여 빠른 검색과 삽입이 가능.4. 메서드 제공메서드설명add(value)값 추가 (중복이면..
StringBuilder란?
·
Coding Test
StringBuilder는 Java에서 문자열을 효율적으로 처리하기 위한 클래스이다. String과는 다르게 변경 가능한(mutable) 문자열 객체를 제공한다. 문자열을 여러 번 조작하거나 수정해야 할 때, StringBuilder를 사용하면 성능을 크게 개선할 수 있다. StringBuilder의 주요 특징1. 변경 가능(Mutable)String은 불변(immutable)이기 때문에 문자열을 수정할 때마다 새로운 객체를 생성한다.반면 StringBuilder는 기존 객체를 수정하므로 메모리 사용량과 처리 속도가 더 효율적이다. 2. 빠른 성능문자열을 여러 번 연결하거나 수정해야 할 경우, StringBuilder는 String보다 훨씬 빠르다.3. 메서드 제공문자열 조작을 위한 다양한 메서드를 제공..
BufferedReader를 사용하는 이유
·
Coding Test
Java에서 입력을 받을 때 일반적으로 Scanner를 사용하지만, BufferedReader는 입력 속도가 훨씬 빠르기 때문에 코딩 테스트에서 권장되고 있다. 1. Scanner와 BufferedReader 차이점비교 항목ScannerBufferdReader입력 속도느림빠름버퍼 크기작음 (1KB)큼 (8KB ~ 16KB)입력 방식직접 읽음버퍼에 저장 후 처리사용법간단InputStreamReader와 함께 사용파싱 지원nextInt(), next() 등의 메서드 제공직접 split() 또는 StringTokenizer 사용 필요 2. BufferedReader가 더 빠른 이유Scanner는 입력을 받을 때 한 글자씩 읽고 즉시 처리하기 때문에 속도가 느리다.반면 BufferedReader는 버퍼(메모리 ..
코딩 테스트 준비
·
Coding Test
1.프로그래머스 레벨 0 50문제-> 백준 단계별 문제집 풀기-> dfs/bfs 이론 보기(유튜브/블로그)-> 완전탐색(dfs/bfs) 유형 실버 15문제 풀기-> dp 이론 보기 -> dp 유형 실버 15문제 풀기  3. 백준 유형별로 미는법유형 링크 - 클릭위 링크를 클릭하면 이 화면을 보게됩니다.유형별로, 실버티어이면서. 푼사람이 많은 순으로 정렬되어있는 겁니다.각 유형 태그는 아래와 같습니다. 그래프 탐색 dp 이분탐색 다velog.io 2. -> 이진탐색 유형 이론보기 -> 이진탐색 유형 실버 15문제 풀기.-> 다익스트라 유형 이론보기 -> 다익스트라 유형 실버 15문제 풀기.-> 유니온파인드 유형 이론보기 -> 유니온파인드 유형 실버 10문제 풀기.-> MST(크루스칼,프림) 유형 이론보기 ..
도커 nodejs 실습 프로젝트
·
docker
$ npm init -y프로젝트 초기화$ npm i express웹 애플리케이션 프레임워크 설치(express)index.jsconst express = require('express');const app = express();app.get('/', (req, res) => { res.send('🐳 Dream Coding in Docker! 🐳');});app.listen(8080, () => console.log('Server is running 🤖')); $ node index.js백엔드 서버 구동 컨테이너를 만들기 위해서 해야할 것1. Dockerfile 생성FROM node:16-alpineWORKDIR /appCOPY package.json package-lock.json ./## n..
우분투 리눅스에서 MariaDB 설치 및 초기 설정
·
Linux
1. MariaDB 설치1.1 MariaDB 패키지 업데이트MariaDB가 Ubuntu 기본 레포지토리에 포함되어 있으므로 먼저 시스템 패키지를 업데이트 한다.sudo apt updatesudo apt upgrade -y 1.2 MariaDB 설치sudo apt install mariadb-server mariadb-client -y 1.3 MariaDB 서비스 시작 및 확인MariaDB 설치 후, 서비스를 시작하고 활성화한다.sudo systemctl start mariadbsudo systemctl enable mariadb MariaDB 상태 확인 :sudo systemctl status mariadb2. MariaDB 초기 설정2.1 보안 설정 (mysql_secure_installation)Ma..
리눅스 패키지(apt)과 압축(tar, gz)
·
Linux
리눅스 패키징(Packaging)패키징은 소프트웨어를 설치, 업데이트, 제거, 관리할 수 있도록 구성된 포맷과 관련 도구를 의미합니다. 리눅스 시스템은 다양한 배포판(Distro)을 가지며, 배포판에 따라 패키지 관리 시스템(Package Manager)이 다를 수 있습니다.패키지의 구성리눅스에서 패키지는 보통 다음을 포함합니다: 바이너리 파일: 실행 가능한 소프트웨어 파일. 설정 파일: 보통 /etc 디렉토리에 위치. 의존성 정보: 패키지가 실행되기 위해 필요한 다른 패키지 목록. 스크립트: 설치, 업데이트, 제거 시 실행되는 자동화된 명령.---주요 패키지 형식1. Debian 계열 (Debian, Ubuntu 등) 패키지 형식: .deb 패키지 관리 도구: APT(Advanced Pack..
리눅스 프로세스 관리 (ps, top, kill..)
·
Linux
리눅스 프로세스 관리 개요리눅스에서 프로세스(Process)는 실행 중인 프로그램 또는 명령어를 말하며, 시스템의 중요한 자원(메모리, CPU 등)을 효율적으로 관리합니다. 리눅스 프로세스 관리에 대해 알아보겠습니다.프로세스의 기본 개념 프로세스 ID (PID): 모든 프로세스는 고유한 프로세스 ID(PID)를 가집니다. 부모-자식 관계: 모든 프로세스는 부모 프로세스에서 생성되며, 최상위 부모 프로세스는 init(systemd)이고 PID는 1입니다. 프로세스 상태: R (Running): 실행 중이거나 실행 준비 상태. S (Sleeping): 대기 상태. D (Uninterruptible): 종료 불가능한 대기 상태(I/O 작업 중). Z (Zombi..