전체 글 682

[백준 24060] 알고리즘 수업 - 병합 정렬 1 [Java]

문제오늘도 서준이는 병합 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 병합 정렬로 배열 A를 오름차순 정렬할 경우 배열 A에 K 번째 저장되는 수를 구해서 우리 서준이를 도와주자.크기가 N인 배열에 대한 병합 정렬 의사 코드는 다음과 같다.merge_sort(A[p..r]) { # A[p..r]을 오름차순 정렬한다. if (p 입력첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다.다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109)출력배열 A에 K 번째 저장 되는 수를 출력한다...

Recursive Call

재귀 호출(Recursive Call)자기 자신을 호출하는 방식왜 Recursive Call이 필요할까요?미로를 탈출한다고 생각해봅시다. 막다른 길에 도달하면 이전 갈림길로 돌아가 다른 경로를 시도해야 합니다.이처럼 여러 선택지를 모두 시도해야 할 때, 실패한 경우 이전 상태로 되돌아가는(backtracking) 과정이 필요합니다.재귀 호출은 함수가 종료되기 전까지 상태를 유지하므로, 각 단계의 상태를(스택 구조로) 자동으로 기억합니다.💡하나의 선택지가 끝나면 이전 상태로 돌아가 다른 선택지를 시도할 수 있습니다.💡하나의 큰 문제를 여러 작은 문제로 분리하거나, 반복문보다 직관적이고 간결한 코드 작성이 가능합니다. 🔄 동작 원리피보나치 수열을 통해 재귀 호출의 동작 원리를 살펴봅시다.피보나치 수열이..

Algorithm 2024.11.23

코딩테스트에 대하여...

1️⃣코딩 테스트의 목적❓기업에서 개발자 채용 과정에 코딩 테스트를 도입한 이유가 뭘까요?실제 개발 업무에서는 알고리즘을 직접 사용하기 보다, 외부 라이브러리나 API 등을 사용하는 경우가 많습니다. 그럼에도 기업은 코딩테스트를 요구하기에, 지원자는 실제 역량과는 무관한 테스트라 생각할 수 있습니다.코딩테스트를 준비하기 전에 앞서, 준비 해야하는 이유에 대해 먼저 알아보겠습니다.종합적인 문제 해결 능력 검증코딩 테스트는 제한된 시간 내 주어진 문제를 분석하고, 논리적 사고를 통해 해법을 제시하는 능력에 대한 평가입니다.이 과정에서 지원자가 사용하는 PL과 자료구조에 대한 이해도를 평가할 수 있습니다.저비용 고효율 필터링개발자 면접은 결국 개발자가 보지만, 많은 지원자를 보기에는 비효율적입니다. 많은 지원..

PS 2024.11.22

[Java] Java의 Collection Framework에 대해

Collection FrameworkJava Collection Framework는 데이터를 효율적으로 관리하고 조작하기 위한 표준화된 자료구조와 알고리즘의 집합입니다. 이를 통해 개발자는 복잡한 자료구조를 직접 구현할 필요 없이 최적화된 구현체를 사용하여 애플리케이션의 생산성과 유지 보수성을 높일 수 있습니다. Collections Framework OverviewCollections Framework Overview Introduction The Java platform includes a collections framework. A collection is an object that represents a group of objects (such as the classic Vector class)...

Dev 2024.11.21

[Java] Double.MIN_VALUE는 음수가 아니다.

Java의 Double.MIN_VALUE는 종종 오해를 불러일으키는 상수입니다. 이름만 보면 "가장 작은 값"이라는 의미로 해석되어, 음수를 떠올리기 쉽습니다. 하지만 Double.MIN_VALUE는 음수가 아니며, 오히려 0에 가까운 양수입니다. 이를 이해하기 위해 해당 상수의 의미와 사용하는 맥락을 살펴보겠습니다. 1. Double.MIN_VALUE 란?Double.MIN_VALUE는 Java에서 double 타입이 표현할 수 있는 가장 작은 양의 값을 의미합니다. 이는 IEEE 754 표준에 따라 정의된 부동소수점 방식에서 정규화된 가장 작은 값입니다.public class DoubleExample { public static void main(String[] args) { Sys..

Dev 2024.11.20

[EC2] AWS EC2 프리티어 인스턴스 생성하기

EC2 인스턴스란?EC2(Elastic Compute Cloud)는 AWS에서 제공하는 가상 서버 서비스로, 다양한 운영체제와 애플리케이션을 설치하고 실행할 수 있습니다. AWS 프리티어를 통해 12개월 동안 무료로 특정 리소스를 사용해볼 수 있습니다. 무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어이러한 프리 티어 혜택은 AWS 신규 고객에게만 제공되며 AWS 가입일로부터 12개월 동안 유효합니다. 12개월의 무료 사용 기간이 만료되거나 애플리케이션 사용량이 프리 티어 범위를 초과할 경우aws.amazon.com위 AWS 프리티어 개요 페이지에 다음과 같은 안내가 있습니다.그렇습니다. 공짜 서버를 매월 750시간 사용할 수 있습니다.음? 한달 동안 계속 서버를 실행해도 31D * 24H = 744시간..

Dev/AWS 2024.11.18

[PowerShell] Windows에서 빈 폴더를 자동으로 삭제하는 PowerShell 스크립트

파일 관리 작업을 하다 보면 불필요한 빈 폴더가 많이 생기곤 합니다. 특히 프로젝트를 관리하거나 여러 디렉터리를 정리할 때 빈 폴더가 쌓이면 관리가 번거로워질 수 있습니다. 이번 글에서는 PowerShell 스크립트를 사용하여 Windows에서 빈 폴더를 자동으로 탐색하고 삭제하는 방법을 소개하겠습니다. 아래는 Windows에서 빈 폴더를 삭제하기 위한 PowerShell 스크립트입니다. 이 스크립트는 현재 디렉터리에서 시작해 모든 하위 폴더를 탐색하고, 빈 폴더를 찾아 삭제하는 작업을 수행합니다.# 현재 디렉터리에서 시작하여 모든 하위 디렉터리를 검색하고, 디렉터리 정보만 가져옴$folders = Get-ChildItem -Path . -Recurse -Directory# 삭제된 폴더 수를 기록하는 변..

Dev 2024.11.15

[Docker] Docker 컨테이너 기본 시간대 설정

기본적으로 Docker 컨테이너는 호스트 시스템의 시간대와 무관하게 UTC 표준 시간대로 설정되어 있습니다. 이 점은 특히 한국과 같이 UTC+9 시간대를 사용하는 환경에서 중요한 고려 사항이 될 수 있습니다.호스트(EC2)의 시간대를 설정하는 방법은 지난 글에서 다룬적 있습니다. [EC2] AWS EC2 인스턴스에서 시간대(Timezone) 설정 변경하기AWS EC2 인스턴스를 활용할 때 기본적으로 시간대(Timezone)가 UTC(세계 협정시)로 설정되어 있습니다.UTC는 글로벌 시간 표준으로 편리하지만, 한국 시간과 같은 로컬 시간대가 필요한 경우에는 시간kyr-db.tistory.com하지만, Docker 컨테이너는 여전히 UTC 표준시간대를 사용합니다. 이를 해결할 수 있는 방법을 스프링 서버의..

Dev/Docker 2024.11.11

[Spring] 스프링부트 @Schedule 시간대 문제 해결

서버 환경에 따라 스프링 스케줄러가 설정된 시간에 동작하지 않는 경우가 발생할 수 있습니다. 특히, 애플리케이션의 시간대 설정과 배포 서버의 시간대가 일치하지 않을 때, 스케줄러가 의도한 시간에 실행되지 않을 수 있습니다. 이 글에서는 스프링 스케줄러가 배포 서버에서 한국 시간에 맞춰 정확하게 동작하도록 설정하는 방법을 다룹니다.문제 상황스프링 애플리케이션에서 아래와 같이 매주 수요일 오후 4시에 작업을 스케줄링했다고 가정해봅시다.@Scheduled(cron = "0 0 16 ? * WED")public void run() { // 작업 내용} 이 코드는 애플리케이션이 실행 중인 서버의 호스트 시간대를 기준으로 스케줄링됩니다. 즉, 로컬 환경에서 애플리케이션을 실행하면 로컬 시간대에 맞춰 작동하고,..

Dev/Backend 2024.11.10