전체 글71 디펜스 게임 : 프로그래머스 LV2 https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 설명 : 각 라운드 마다 돌면서 남은 병사의 수와 무적권을 모두 소모하여 통과할 수 있는 라운드 수 구하기.문제 해결 : 각 라운드 마다 pq에 값을 저장하고, pq의 크기 size가 무적권보다 많을때 한개씩 poll 하면서 병사를 소모 시켜야함.마지막 음수가 될때 break 하고 탈출 하면 된다. 여기서 핵심은. pq의 size를 비교해서 무적권 보다 클때 poll 해야하는 것이다. import java.io.*;import java.u.. 2025. 5. 14. 연구소 : 백준 14502 https://www.acmicpc.net/problem/14502 - 바이러스를 막기위해 3개의 벽을 설치하여 최대한의 많은 안전구역을 확보하는 문제이다.- 벽만 설치하면 bfs()를 실행해서 바이러스를 퍼트린 다음에 안전구역을 계산하는건 쉬운 문제.- 벽을 세우기 전에 안전구역이 몇개 인가를 먼저 계산 해야한다. for(int i = 0; i - map[][] 2차원 변수를 초기화 할때 0이면 따로 좌표를 저장한다. int E = empties.size();for(int i = 0; i - 이런식으로 각각의 for 반복문의 값이 겹치지 않게 설정하면 된다.- 그 좌표값들로 벽을 세우고, 안전 지대 탐색을하고, 다시 벽을 허무는 것을 반복한다.- 마지막으로 안전지대 값의 최대값을 갱신하면 된다. 2025. 5. 14. STOMP 구독 해제 보호되어 있는 글 입니다. 2025. 5. 13. 레디스 사용 1. RedisTemplate을 이용한 분산 캐시 ( 키-값 저장소 ) 로 '방 별 인원 수'와 사용자별 입장 방 ID를 관리하여여러 서버 인스턴스가 동일한 상태를 공유함 * 분산 캐시 ( Distributed Cache ) - RedisTemplate.opsForValue() : - roomId : 123 -> 현재 인원수 - userId : 456 -> 사용자가 들어가 있는 방 ID // 방 인원 증가roomPeopleCacheTemplate.opsForValue().increment("roomId:" + roomId);// 사용자별 방 정보 저장alreadyInGameUserCacheTemplate.opsForValue().set("userId:" + userId, roomId);- roomP.. 2025. 5. 13. 자바의 동시성 처리 방법 * 문제 발생Spring 프로젝트를 진행하면서 동시성 문제에 직면했다.인게임( quiz ) -> 대기방( game ) 으로 리다이렉트 할때 문제 발생.다중 사용자들이 한번에 대기방으로 이동따라서 동시에 DB 접근을 하기 때문에 경쟁 조건 ( Race Condition ) 이 발생. * 해결 방법총 2가지로 해결 가능함1. Java의 동시성 해결 키워드를 사용 - Synchronized 키워드 - reentrantLock 키워드2. 비동기 코드를 추가해서 결과를 반환 함 - executorService 를 이용해서 비동기 처리 후 CompleteableFuture로 처리한 작업의 결과를 순차적으로 반환 받음 - @Async 어노테이션으로도 처리가 가능하다 첫번째 Synchronized 키워드를 조사한대로 .. 2025. 5. 5. 숫자카드2 https://www.acmicpc.net/problem/10816 * 기본적인 upperBound, lowerBound를 구하는 문제.* binarySearch로 기본적인 코드를 알면 등호만 붙여주면 끝나는 문제다. import java.io.*;import java.util.*;class BOJ10816 { static int size, targetSize; static int[] arr, target; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuild.. 2025. 3. 27. 이전 1 2 3 4 ··· 12 다음