[백준] 16173 점프왕 쩰리 (Small) | DFS, 브루트포스, 그래프 | 실버 Ⅳ | JAVA
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/16173 ⭐ 문제 소개젤리 캐릭터인 '쩰리'가 정사각형 게임판에서 목표 지점(맨 오른쪽 아래 칸)에 도달할 수 있는지 판별하는 문제입니다. 문제의 핵심은 주어진 이동 규칙을 따르면서 목표 지점에 도달할 수 있는 경로를 탐색하는 것입니다.⭐ 문제 풀이 과정1. 그래프 탐색 활용이 문제는 그래프 탐색을 통해 해결할 수 있습니다.DFS (깊이 우선 탐색): 재귀적으로 경로를 탐색하며 도달 가능한 모든 칸을 방문합니다.BFS (너비 우선 탐색): 큐를 활용해 단계별로 탐색하며 경로를 찾습니다.2. 유효한 이동 조건탐색을 진행할 때 다음 조건을 만족해야 합니다:다음 칸이 게임판 내에 있어야 합니다.이동할 수 있는 칸 수를 정확히 사용해야 합니다...
[백준] 1920 수 찾기 | 이분탐색, 해시 | 실버 Ⅳ | JAVA
·
코딩 테스트 일지 📒
시간 복잡도 분석이진 탐색 방법:배열 정렬: O(Nlog⁡N)배열 BBB의 각 원소에 대해 이진 탐색: O(Mlog⁡N)총 시간 복잡도: O((N+M)log⁡N)HashSet 방법:HashSet 저장: O(N)배열 BBB의 각 원소 탐색: O(M)총 시간 복잡도: O(N+M)⭐ 정답코드✅ 이진 탐색 이용import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = ne..
[MySQL Workbench] 아주 쉽게 ERD 추출하여 이미지로 저장하는 방법
·
기술 지식 쌓아가기 📚/Backend 🍔
이터베이스 설계를 할 때, 테이블 간의 관계를 명확하게 시각화하는 것이 중요합니다. 이때 사용하는 것이 바로 ERD(Entity Relationship Diagram)입니다. ERD는 데이터베이스에서 정의된 테이블들의 관계를 시각적으로 표현하는 다이어그램으로, 주로 데이터베이스 모델을 보다 직관적으로 이해하고 설명할 때 유용합니다.ERD를 활용하면, 각 테이블 간의 연관 관계를 한눈에 파악할 수 있어 설계 과정을 효율적으로 진행할 수 있습니다. 이 글에서는 MySQL Workbench를 활용해 ERD를 그리는 방법을 다룰 것입니다. 1️⃣ 워크벤치 상단 메뉴에서 Database - Reverse Engineer 선택 2️⃣ 접속할 Hostname, Port, Username, Password 등 확인 3..
[IntelliJ] 자동완성 기능 켜기/끄기
·
기술 지식 쌓아가기 📚/Backend 🍔
보통은 자동완성이 필수적으로 필요하지만, 코딩테스트와 같은 테스트 연습을 인텔리제이에서 할 경우 자동완성기능을 끄고 싶을 때가 있는데요!저는 코딩테스트를 준비할 때는 자동완성을 끄고, 프로젝트를 개발할 때는 자동완성을 꼭...켜야하는데요!매번 까먹어서 글로 정리해봤습니다!1️⃣ Settings이동2️⃣ Editor > General > Code Completion 탭의 Show suggestions as you type 항목Editor > General > Code Completion 탭으로 이동하면 엉덩이가 가리키고 있는 Show suggestions as you type이라는 항목이 보이실텐데요! 이걸 체크하면 자동완성이나 힌트가 보이고,해제하면 자동완성 기능이 꺼집니다!
[알고리즘/JAVA] DFS와 BFS
·
코딩 테스트 일지 📒
⭐ DFS와 BFS란 무엇인가? DFS (Depth-First Search, 깊이 우선 탐색): 그래프나 트리에서 한 경로를 끝까지 탐색하고, 더 이상 탐색할 노드가 없으면 다시 이전 노드로 돌아와 다른 경로를 탐색합니다. 깊이 방향으로 탐색하는 방식이므로, 스택이나 재귀를 사용하여 구현됩니다.BFS (Breadth-First Search, 너비 우선 탐색): 시작 노드에서부터 인접한 노드를 먼저 탐색한 후, 다시 그 인접 노드의 인접 노드들을 탐색하는 방식입니다. 주로 큐를 사용하여 구현됩니다. ⭐ DFS와 BFS의 차이점특징DFSBFS탐색 방식깊이 우선, 한 경로를 끝까지 탐색너비 우선, 인접한 노드를 모두 탐색자료 구조스택(재귀로 구현 가능)큐경로 탐색가능한 경로를 빠르게 찾음최단 경로 탐색에 유리..
[Spring Boot] 예외 처리 기초부터 심화까지: API 오류 응답 설계 방법
·
기술 지식 쌓아가기 📚/Backend 🍔
개발을 해 나가면서 점점 더 중요하게 느껴지는 부분 중 하나가 바로 예외 처리입니다.초반에는 애플리케이션이 정상적으로 동작하는지에 집중하게 되지만, 시간이 지날수록 예외 상황에 대한 철저한 대응이 안정성에 필수적이라는 것을 실감하게 됩니다.특히 API 개발에서 예외 처리는 단순히 오류 메시지를 출력하는 것을 넘어서, 클라이언트가 요청의 실패 원인을 명확하게 알 수 있도록 도와주는 역할을 합니다.이 글에서는 스프링 부트 기반 애플리케이션에서 예외 처리를 체계적으로 구현하고, 이를 통해 API가 보다 안정적으로 동작하도록 설계하는 방법을 살펴보겠습니다. ⭐ 예외 처리란 무엇인가?예외 처리(Exception Handling)는 프로그램 실행 중 예기치 않은 오류가 발생했을 때 이에 대한 적절한 대응을 하는 것..
[Backend] 스프링부트로 설명하는 백엔드 개발 개념 완전 정복 🚀 (IT 개발 동아리 면접 질문 완벽 대비 가능⭐)
·
기술 지식 쌓아가기 📚/Backend 🍔
오늘은 제가 지금까지 정리한 스프링부트 기반 백엔드 기술에서 필요한 개념들을 정리해 봤습니다!하루에 한 두 개 정리하고 시험기간에는 업로드를 쉬다 보니 3개월이 걸렸네요🫡 이 글을 쓰게 된 계기는 개발 동아리 면접 준비를 할 때마다 급하게 공부하고 외우는 것에 회의감을 느꼈기 때문인데요!전공자인데 항상 무슨 개념을 들으면 아 그거?! 하고 알긴 아는데 막상 설명하려고 하면 감자🥔가 되는... 그런 게 싫어서 이번에 제대로 정리해 봤습니다. ㅎ 만약, 개발 동아리 면접을 준비 중이시라면 아주 큰 도움이 될 것이라고 자부합니다.ㅎ동아리 면접을 보다 보니 물어보는 내용이 비슷하더라고요! 그래서 나왔던 질문들은 정리해 봤습니다. 어떤 동아리인지 밝힐 수는 없지만 정말 물어보는 내용이 웬만하면 비슷해서 어떤 ..
[Optimization] Spring의 Ahead-of-Time (AOT) Compilation: 성능과 효율을 높이는 컴파일 방식 알아보기
·
기술 지식 쌓아가기 📚/Backend 🍔
🚩 소개Spring 애플리케이션의 성능을 개선하고, 실행 속도를 높이기 위해 사용되는 방법 중 하나가 Ahead-of-Time (AOT) 컴파일입니다.전통적인 Java 애플리케이션은 실행 시점에 필요한 코드를 동적으로 컴파일하는 Just-In-Time (JIT) 컴파일 방식을 사용합니다.하지만 AOT 컴파일을 활용하면 실행 전, 즉 빌드 단계에서 미리 필요한 코드를 컴파일해두어 애플리케이션의 시작 시간을 단축하고 메모리 사용량을 줄일 수 있습니다. 이번 글에서는 AOT 컴파일이 무엇인지, 어떤 원리로 동작하며 Spring에서 어떻게 활용되는지 알아보겠습니다. ⭐ AOT 컴파일이란?AOT 컴파일은 코드를 미리 컴파일하여 실행 파일로 만드는 방식입니다.전통적인 Java 애플리케이션에서는 JIT 컴파일러가 ..
[Optimization] 무중단 배포: 서비스 중단 없이 안전하게 배포하는 방법
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ 무중단 배포의 개념무중단 배포란 애플리케이션 배포 시 서비스 중단 없이, 즉 사용자가 끊김 없이 애플리케이션을 사용할 수 있도록 하는 배포 방식입니다. 일반적으로 무중단 배포를 통해 새로운 버전을 배포하거나 유지보수를 진행해도 사용자 경험에 영향을 주지 않는 것을 목표로 합니다.⭐ 무중단 배포가 필요한 이유 사용자 경험 개선: 서비스 중단이 잦으면 사용자는 불편을 느끼고, 이는 서비스에 대한 신뢰도에 영향을 줄 수 있습니다.비즈니스 연속성 유지: 특정 시간에 중단될 수 없는 서비스를 제공하는 경우(예: 금융, e-커머스), 무중단 배포는 필수적입니다.경쟁력 확보: 빠른 업데이트와 유지보수를 통해 경쟁 서비스를 뛰어넘는 기능을 신속하게 제공할 수 있습니다.⭐ 무중단 배포를 구현하는 방식 Blue-Gre..
[Optimization] 캐시 추상화 이해하기: 성능 최적화를 위한 캐싱 레이어 도입 방법
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ 캐시 추상화란?캐시 추상화는 개발자가 캐싱을 효과적으로 활용할 수 있도록 다양한 캐시 구현체를 추상화하는 개념입니다. 이를 통해 코드에서 캐시를 직접 관리하지 않고도 데이터를 캐싱할 수 있어, 성능 최적화와 코드 간결성을 동시에 얻을 수 있습니다.✅ 왜 캐시 추상화가 필요한가?캐시 추상화는 다음과 같은 이점을 제공합니다:코드의 유연성: 캐싱 로직을 비즈니스 로직에서 분리하여 관리할 수 있습니다.캐시 구현의 독립성: 캐시 제공자(Redis, Ehcache, Caffeine 등)를 쉽게 교체할 수 있습니다.일관된 캐시 인터페이스: 다양한 캐시 기술을 하나의 통합된 인터페이스로 사용하여 일관성 있는 코드를 유지할 수 있습니다. ⭐ Spring에서의 캐시 추상화Spring 프레임워크에서는 @Cacheable..
코양이🤍
'오블완' 태그의 글 목록 (2 Page)