최신 글
99클럽 코테 스터디 9일차 TIL - 백준 2437번 : 저울
99클럽 코테 스터디 9일차 TIL - 백준 2437번 : 저울
그리디
2025.04.10 18:28
✅ 문제https://www.acmicpc.net/problem/2437N개의 저울추가 주어질 때, 이 추들을 사용해 측정할 수 없는 양의 정수 무게 중 최소값을 구하기.한쪽은 물체, 다른 한쪽은 추를 놓을 수 있다. 즉, 연속적인 N개의 추들로 물체의 무게를 표현하는 저울이다.예) 저울추 3, 1, 6, 2, 7, 30, 1인 경우, 측정할 수 없는 가장 작은 양의 정수 무게는 21✅ 분류그리디 알고리즘정렬 (오름차순)✅ 공부한 내용- 풀이 로직추들을 오름차순으로 정렬sum 변수를 사용해서 현재까지 추들로 만들 수 있는 연속된 무게의 최댓값 변수 저장.각 추를 순서대로 확인현재 추의 무게가 sum+1보다 크다면, sum+1은 만들 수 없는 최소 무게 (정답)그렇지 않다면, 추를 사용하면 범위를 sum ..
99클럽 코테 스터디 8일차 TIL - 백준 9996번 : 한국이 그리울 땐 서버에 접속하지
99클럽 코테 스터디 8일차 TIL - 백준 9996번 : 한국이 그리울 땐 서버에 접속하지
백준
2025.04.09 13:15
항해99 클럽 코테 스터디 7일차 TIL - 자바 미들러 4/9 (수요일)https://www.acmicpc.net/problem/9996✅ 문제📌  접근방법문자열을 * 기준으로 나누고 패턴을 배열에 저장한다.*가 가운데에 있는 경우, 맨 앞에 있는 경우, 맨 뒤에 있는 경우 총 3가지로 나누었다. 🔑 풀이❗️ 초기 풀이 (틀림)import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseI..
[LeetCode] 2283. Check if Number Has Equal Digit Count and Digit Value
[LeetCode] 2283. Check if Number Has Equal Digit Count and Digit Value
리트코드
2025.04.09 11:49
https://leetcode.com/problems/check-if-number-has-equal-digit-count-and-digit-value/description/✅ 문제📌  접근방법0부터 9까지 숫자가 몇 개가 나오는 지 기록할 배열이 필요하다.입력값 속 숫자를 기록한 뒤, 서로 비교해서 다르면 false, 같으면 true 🔑 풀이class Solution { public boolean digitCount(String num) { int[] count = new int[10]; // 0~9까지 숫자 빈도 카운트 배열 char[] text = num.toCharArray(); // 문자열을 문자 배열에 저장 // 1. 각 숫자 등장 횟수 세기 ..
99클럽 코테 스터디 7일차 TIL - [스택] 백준 10799번 : 쇠막대기
99클럽 코테 스터디 7일차 TIL - [스택] 백준 10799번 : 쇠막대기
스택 & 큐
2025.04.09 01:22
항해99 클럽 코테 스터디 7일차 TIL - 자바 미들러 4/8 (화요일)https://www.acmicpc.net/problem/10799✅ 문제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)); String n = br.readLine(); Stack st = new Stack(); int sum = 0; for (int i = 0; i  실행코드ht..
[큐] 백준 10845번 큐 - Java
[큐] 백준 10845번 큐 - Java
스택 & 큐
2025.04.08 16:48
https://www.acmicpc.net/problem/10845✅ 문제🔑 풀이import java.io.*;import java.util.*;// deque 활용public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int N = Integer.parseInt(br.readLine()); Deque..
인기 글
99클럽 코테 스터디 2일차 TIL - 백준 14495번 : 피보나치 비스무리한 수열
DP (동적계획법)2025.04.02 01:0499클럽 코테 스터디 2일차 TIL - 백준 14495번 : 피보나치 비스무리한 수열

항해99 클럽 코테 스터디 2일차 TIL - 자바 미들러 4/1 (화요일)https://www.acmicpc.net/problem/14495✅ 문제📌  접근방법처음엔 막연히 재귀함수를 이용하였지만 시간복잡도가 O(2^N)이라 시간 초과로 런타임 오류가 났다.이를 해결하려면 메모이제이션(DP) 또는 반복문을 사용한 동적 계획법을 사용해야한다. -> O(N)또한, 문제조건에서 n이 116까지 입력받는데 f(116)은 int의 범위를 넘기 때문에 long을 써야했다. 런타임 오류 (오답)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public stati..

99클럽 코테 스터디 5일차 TIL - 백준 2559번 : 수열
백준2025.04.04 22:1099클럽 코테 스터디 5일차 TIL - 백준 2559번 : 수열

항해99 클럽 코테 스터디 5일차 TIL - 자바 미들러 4/4 (금요일)https://www.acmicpc.net/problem/2559✅ 문제📌  접근방법시간복잡도 고려방법 1.  O(N^2)2중 포문으로 풀면 시간초과. (2근데 K가 N에 가까워 지는 순간 시간 복잡도는 최악의 경우 O(NK) -> O(N^2)이 된다. 그러면 1초 넘는다.  방법 2.  O(N)슬라이딩 윈도우인덱스 0번 지점부터 k-1번까지 미리 누적합을 구해둔 후, 윈도우를 한칸씩 밀어나간다.그러면 탐색 과정에서 바로 직전의 인덱스를 제외하고, i + k 번째 값을 추가하면 된다. 그러면 2중 포문이 아니라 단일 포문으로 가능해진다.  🔑 풀이import java.io.BufferedReader;import java.io.I..

[LeetCode] 232. Implement Queue using Stacks
리트코드2025.04.03 17:48[LeetCode] 232. Implement Queue using Stacks

https://leetcode.com/problems/implement-queue-using-stacks/description/✅ 문제Stack 2개를 활용하여 문제에서 주어진 Queue의 메서드를 모두 구현해야한다. 📌  접근방법Stack과 Queue의 차이점은 데이터를 저장하고 추출하는 순서에 있다.Stack은 후입 선출(LIFO)을 기반으로 동작하는 자료구조.Queue는 선입 선출(FIFO)을 기반으로 동작하는 자료구조.처음에 후입 선출을 어떻게 선입선출로 바꿀 수 있을까 고민했다.후입 선출 자료구조에서 가장 처음 입력된 데이터는 가장 마지막 순서에 위치한다.후입 선출을 선입 선출로 만들기 위해서 후입 선출로 저장된 자료구조를 역순으로 졍렬하면 된다.어떻게 역순으로 정렬할 수 있을까?이 때 Sta..

99클럽 코테 스터디 3일차 TIL - 프로그래머스 : 바탕화면 정리
프로그래머스2025.04.02 18:1399클럽 코테 스터디 3일차 TIL - 프로그래머스 : 바탕화면 정리

항해99 클럽 코테 스터디 3일차 TIL - 자바 미들러 4/2 (수요일)바탕화면 정리✅ 문제문자열 배열 wallpaper 가 있다. 빈칸은 . , 파일이 있는 칸은 # 값을 가진다. 최소한의 이동거리를 갖는 한 번의 드래그로 모든 파일을 선택해서 지우려고 한다.드래그 방법드래그는 바탕화면의 격자점 S(lux, luy)를 마우스 왼쪽 버튼으로 클릭한 상태로 격자점 E(rdx, rdy)로 이동한 뒤 마우스 왼쪽 버튼을 떼는 행동입니다.이때, "점 S에서 점 E로 드래그한다"고 표현하고 점 S와 점 E를 각각 드래그의 시작점, 끝점이라고 표현합니다.점 S(lux, luy)에서 점 E(rdx, rdy)로 드래그를 할 때, "드래그 한 거리"는 |rdx - lux| + |rdy - luy|로 정의합니다.점 S에..

99클럽 코테 스터디 1일차 TIL - 백준 1929번 : 소수 구하기
백준2025.03.31 18:5999클럽 코테 스터디 1일차 TIL - 백준 1929번 : 소수 구하기

항해99 클럽 코테 스터디 TIL - 자바 미들러 (3/30(월) ~ 4/28(월)) 시작!https://www.acmicpc.net/problem/1929✅ 문제📌  접근방법일반적인 소수 판별법으로 소수는 자기자신과 1만을 약수로 가지는 수이다.n미만의 숫자 중에서 나머지 연산을 했을 때 0이 되면 약수를 가져서 소수가 아니다.public class Algorithm { static boolean isPrime(int n){ // 시간복잡도 O(N) if(n위 코드의 시간복잡도는 O(N)이며, N개의 수를 판별하면 O(N^2)이 된다.시간이 상당히 오래걸리므로 에라토스테네스의 체로 접근했다. 에라토스테네스의 체는 많은 수의 소수판별을 할 때 유용하다.이 알고리즘의 원리는 해당 숫자가..

스프링 심화 1기
[중간발표] B2B2C SaaS 대기열 서비스
[중간발표] B2B2C SaaS 대기열 서비스
스프링심화1기
2024.10.11 00:30
중간발표 자료  Monorepo를 통해 멀티모듈 구조를 채택했고, 루트 프로젝트에서 각각의 서브 프로젝트를 관리하고versions.properties를 통해 여러 서버에서 사용하는 JWT 같은 의존성의 버전을 통합관리했다.브랜치 전략으로는 main-dev-hotfix-feature로 이슈를 발행한 후 해당 브랜치를 파고, PR과 코드리뷰를 통해 이슈와 브랜치를 닫는 전략을 사용했다. 또한 sprint 단위로 일정을 관리했다.이번 프로젝트에서 기획한 서비스는 B2B2C로, 서비스의 사용자는 대기열 서비스를 원하는 기업의 개발자가 될 것이며, 해당 기업은 엔드포인트 사용자에게 서비스를 제공하는 구조로 이루어져 있다.처음에 각자 개발하고 싶은 부분을 고민하다가, 개발자를 위한 서비스를 만들면 어떨까라는 의견이..
Chapter 5. 팀 프로젝트 2주차 WIL
스프링심화1기
2024.10.07 14:36
Weekly I Learned 2주차 간단 요약- 프로젝트 주제 선정 후 설계 과정 이번 프로젝트에서 Kafka 도입을 통해서 최대한 안정성 있게 데이터처리를 하고자 한다.구현 과정에서 높은 러닝 커브가 있고 이슈가 매번 생길 때 로깅에 대한 전략이 필요한데 이런 경우를 대비해서 이벤트 소싱 패턴을 전략을 사용하려 한다. 이벤트 소싱 패턴 (Event Sourcing Pattern) 이란?해당 패턴의 전략의 기본은 데이터를 저장하는 방법에 대한 정의이다.일반적으로 우리는 데이터를 저장할 때, 최종적인 데이터 값만 저장한다. 하지만 이벤트 소싱 패턴은 해당 과정 속 모든 순간의 이벤트를 저장하는 거라고 생각하면 쉽다!어플리케이션의 모든 상태 변화를 순서에 따라 이벤트로 보관한다.일반유저요청(주문)요청(추가..
Domain Driven Design (DDD)
Domain Driven Design (DDD)
스프링심화1기
2024.09.09 11:03
2024.09.05(금) 특강 정리 1. DDD의 개념과 등장 배경소프트웨어를 설계할 때 고객의 요구사항을 정확히 이해하는 것이 중요하다.요구사항을 잘못 이해하면 잘못된 기능을 만들고 수정하는 것도 어렵다. 그럼 이런 문제는 왜 발생할까?과거에는 주로 기술 중심의 개발 방법론이 사용되었기 때문이다.이러한 방법론은 기술적 요구사항을 중점적으로 다루지만,비즈니스 측면에서 발생하는 다양한 요구사항을 효과적으로 반영하기에는 한계가 있었다. 특히, 비즈니스 전문가와 개발자 간의 소통이 원활하지 않으면, 최종 소프트에어가 비즈니스의 실제 요구를 충족시키지 못할 수 있었다.이러한 문제점들을 해결하기 위해 나온 설계가 도메인 주도 설계(Domain Driven Design)이다. '도메인'이란 소프트웨어로 해결하려는 ..
회고
image