99클럽 코테 스터디 7일차 TIL + 쇠막대기
·
📝 끄적끄적/항해99 코테 스터디
- 오늘의 학습 키워드쇠막대기- 풀이import java.util.Scanner;import java.util.Stack;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); System.out.println(solution(input)); } private static int solution(String input) { int answer = 0; Stack stack = new Stack(); stack.push(input.charAt(0..
99클럽 코테 스터디 6일차 TIL + 섬의 개수
·
📝 끄적끄적/항해99 코테 스터디
- 오늘의 학습 키워드섬의 개수- 풀이import java.util.Scanner;public class Main { static int w, h; static int[][] map; static boolean[][] visited; // 8방향 (상, 하, 좌, 우 + 대각선) static int[] dx = {-1, -1, -1, 0, 0, 1, 1, 1}; static int[] dy = {-1, 0, 1, -1, 1, -1, 0, 1}; public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { w = sc.n..
99클럽 코테 스터디 2일차 TIL + 피보나치 비스무리한 수열
·
📝 끄적끄적/항해99 코테 스터디
https://www.acmicpc.net/problem/14495 - 오늘의 학습 키워드DP, 피보나치 응용 - 풀이 f(n) = f(n-1) + f(n-3)이라는 점화식을 기반으로 dp[] 배열을 만들어서 반복문으로 값을 계산초기값 f(1), f(2), f(3)는 모두 1로 고정되어 있으므로, 4부터는 점화식에 따라 누적 계산시간 제한이 넉넉하므로 재귀 대신 반복문을 사용해 효율적인 풀이 구현 - 오늘의 회고처음엔 기존 피보나치처럼 f(n) = f(n-1) + f(n-2)일 줄 알았지만, 이 문제는 f(n-3)이 포함된 특이한 점화식이었다.단순 재귀로 풀려고 하면 호출이 너무 많아져서 시간 초과가 날 것 같았다 그래서 메모이제이션 없이 반복문으로 dp[] 배열에 값을 저장하면서 계산하는 방법을 사용했..
99클럽 코테 스터디 1일차 TIL + 소수 구하기
·
📝 끄적끄적/항해99 코테 스터디
https://www.acmicpc.net/problem/1929   - 오늘의 학습 키워드에라토스테네스의 체 (소수 판별 알고리즘)- 풀이M 이상 N 이하의 모든 소수를 출력해야 하기 때문에,일일이 하나씩 검사하면 시간 초과가 날 수 있어서 효율적인 소수 판별 방법인에라토스테네스의 체 알고리즘을 사용해야 한다. import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int M = sc.nextInt(); // 시작 값 int N = sc.nextInt(); // 끝 값 // 소수 판별을..
인상깊었던 컨퍼런스 세션, 기술블로그 저장
·
📝 끄적끄적
고르곤졸라는 되지만 고르곤 졸라는 안 돼! 배달의민족에서 금칙어를 관리하는 방법Spring Batch 애플리케이션 성능 향상을 위한 주요 팁 (김남윤, Yun)흠 봤던거 다 북마크에 넣으니 복잡해서 어떻게 정리할까 고민중... 옵시디언에 넣을까
여행 동행 참여에 대해 동시성 문제 해결하고 성능 비교 해보기
·
💻 Dev/Spring
개요현재 여행 동행 모집 프로젝트를 진행하는 중에, 동행 참여에 대한 동시성 이슈가 발생했다. 1. 동시성 문제 발생 원인여행 동행 모임 참여 로직은 다음과 같다.멤버가 우동(동행 모임)에 대해 참여 요청을 보낸다.참여할 수 있는지 유효성 검증을 한다. (인원 체크, 기존 참여 여부 확인 등)우동에 대기자로 등록한다.관리자가 승인하면 동행에 최종 참여된다.한 우동에 대해 대기자는 최대 5명만 가능하기 때문에, 처음에는 대기자 객체를 생성할 때 대기자 수를 체크했다.public class WaitingMember { public static WaitingMember of(Udong udong, Long memberId, int currentWaitingMembersCount) { ..