본문 바로가기

분류 전체보기93

[프로그래머스] [3차] 자동완성 Java 문제입력포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g 만 입력해도 go를 추천해주므로 o를 입력할 필요가 없어진다! 단, 학습에 사용된 단어들 중 앞부분이 같은 경우에는 어쩔 수 없이 다른 문자가 나올 때까지 입력을 해야 한다. 효과가 얼마나 좋을지 알고 싶은 라이언은 학습된 단어들을 찾을 때 몇 글자를 입력해야 하는지 궁금해졌다. 예를 들어, 학습된 단어들이 아래와 같을 때gogoneguildgo를 찾을 때 go를 모두 입력해야 한다. gone을 찾을 때 gon 까지 입력해야 한다. (gon이 입력되기 전까지는 go 인지 gone인지 확신할 수 없다.) guild를.. 2025. 8. 8.
CQRS (Command and Query Responsibility Segregation) CQRS (Command and Query Responsibility Segregation) 는 Command 와 Query의 책임을 분리하는 아키텍쳐 패턴이다Command: 데이터를 변경하는 작업 (예: 등록, 수정, 삭제)Query: 데이터를 조회하는 작업 (예: 목록 보기, 상세 보기)전통적인 CURD 방식은 하나의 모델이 읽기와 쓰기 모두를 처리하지만, CQRS는 이 책임을 나누어 더 명확한 구조로 제공한다.command와 query를 나눔으로서의 상대적으로 자주 사용하는 query 분리함으로 테이블 join에 대한 부담을 줄여주고,따라서 빠른 응답 시간과, 높은 트래픽(호출 빈도)에 대해 대응하기 좋다. CQRS의 시스템 설계동기식 : 즉각적이고 강한 결합, 성능저하 및 장애가 전파 될 수 있.. 2025. 6. 6.
로드밸런싱 설정 DB가 이중화되어있는데, 사용자 분산처리를 못하고 있다?! 이럴 때는 간단하게 데이터 베이스 connection URL 에 옵션을 주어 로드벨런싱 설정을 할 수 있다. 예를들어 오라클 DB 2개가 다음과 같이 주어져있다.[IP : 123.123.123.123 / port : 1234] [IP : 123.123.123.567 / port : 5678]  이 2개의 서비스를 JDBC 를 통해 로드밸런싱하여 연결하고 싶다면URL 항목을 다음과 같이 작성하면 된다.   jdbc:oracle:thin:@(DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=123.123.123.123)(PORT=1234)) (ADDRESS=(PROTO.. 2024. 10. 17.
[백준] 31945번: 정육면체의 네 꼭짓점 Java 문제3차원 좌표공간 위의 8개 점 P_0 = (0,0,0), P_1 = (0,0,1), P_2 = (0,1,0), P_3 = (0,1,1), P_4 = (1,0,0),P_5 = (1,0,1), P_6 = (1,1,0), P_7 = (1,1,1)을 꼭짓점으로 하는 정육면체 S가 있다. 주어진 네 꼭짓점이 정육면체 S의 한 면 위에 있는지 판정해 보자. 입력첫째 줄에 테스트 케이스의 개수  T가 주어진다.  ( 1 둘째 줄부터 T개의 줄에 걸쳐 정육면체  S의 각 꼭짓점을 의미하는 서로 다른 네 정수  a, b, c, d가 공백으로 구분되어 주어진다.  (0  출력각 테스트케이스마다 한 줄에 하나씩 P_a, P_b, P_c, P_d가 정육면체 S의 한 면 위에 있는 네 꼭짓점이면 YES, 그렇지 않으면 NO.. 2024. 6. 23.
[백준] 31288번: 캬루 Java 문제이번에 캬루는 소수를 배신했다. 소수의 한 자리를 바꾸어서 소수가 아니게 만들어버렸다. 구체적으로는, 0으로 시작하지 않는 N자리 소수 P에 대해 어떤 수 Q가 P-캬루라는 것은 다음을 모두 만족하는 것을 의미한다. • Q는 2 이상의 N자리 정수이며, 0으로 시작하지 않는다. • P와 Q의 서로 다른 자릿수는 하나뿐이다. • Q는 소수가 아니다. 다음은 N=2, P= 19일 때 P-캬루와 P-캬루가 아닌 수의 예시이다. • Q = 9는 1자리 정수이므로 19-캬루가 아니다. 09처럼 수가 0으로 시작할 수는 없다. • Q = 92는 P = 19와 서로 다른 자릿수가 두 개이므로 19-캬루가 아니다. • Q = 29는 소수이기 때문에 19-캬루가 아니다. • Q = 16,49 등은 19-캬루이다. N.. 2024. 2. 6.
[백준] 12789번 : 도키도키 간식드리미 Java 문제 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두근 설레서 시험 공부에 집중을 못 한다. 이번 중간고사에서도 역시 승환이는 설레는 가슴을 안고 간식을 받기 위해 미리 공지된 장소에 시간 맞춰 도착했다. 그런데 이게 무슨 날벼락인가! 그 곳에는 이미 모든 학생들이 모여있었고, 승환이는 마지막 번호표를 받게 되었다. 설상가상으로 몇몇 양심에 털이 난 학생들이 새치기를 거듭한 끝에 대기열의 순서마저 엉망이 되고 말았다. 간식을 나눠주고 있던 인규는 학우들의 터져 나오는 불만에 번호표 순서로만 간식을 줄 수 있다고 말했다. 그제야 학생들이 순서대로 줄을 서려고 했지만 공간이.. 2023. 11. 5.
[백준] 29332번: 보물 지도 JAVA 문제 오른쪽으로 갈수록 x좌표가 증가하고 위쪽으로 갈수록 y좌표가 증가하는 무한한 좌표평면 위에 살고 있는 여러분은 어느 날 보물 지도를 주웠다. 아쉽게도 여러분이 주운 보물 지도는 여러 개의 조각으로 나뉘어 있어 정확히 어디에 보물이 묻혀 있는지는 알 수 없었다. 그래도 열심히 주어진 지도 조각들을 분석한 결과, 보물이 묻힌 위치에 대해 다음과 같은 정보를 얻을 수 있었다. 보물이 묻혀 있는 위치는 어느 정수 격자점 위이다. 보물이 묻혀 있는 위치를 나타내는 N개의 단서가 있다. 각 단서는 두 정수 x_i, y_i와 문자 d_i로 이루어져 있다. 문자 d_i는 L, R, U, D 중 하나이며, 각각 보물이 (x_i, y_i) 좌표보다 왼쪽, 오른쪽, 위쪽, 아래쪽에 묻혀 있음을 의미한다. 모든 정보는 .. 2023. 9. 3.
[백준] 28682번: 재우야 임관하자 JAVA 문제이 문제는 인터랙티브 문제이다. 아래 노트에 나와 있는 방식으로 입출력을 진행해야 한다. 2023년 2학기, 드디어 고려대학교에 드랍(수강포기제)이 부활한다! 이번 학기를 마치고 졸업하는 사이버국방학과 재우는 원래도 DP 문제를 좋아했는데, 최근에 시즌 2가 나온 드라마 시리즈를 보고 졸업 후 장교로 임관하기로 마음먹었다. 재우는 임관을 위해 최대 3개까지 수강할 수 있는 운동 과목을 수강하기로 했다. 작년에 F를 받은 “수영” 과목의 재수강은 물론, “축구”와 “볼링” 과목까지 최대로 수강하게 되었다. 드랍을 할 수 있는 날이 다가오자, 재우는 갑자기 작년에 수영을 F 받은 기억이 떠올라 PTSD가 왔다. 이에 재우는 지도 교수님께 면담을 요청했고, 재우의 정보를 보던 교수님께서는 재우가 세 과목 .. 2023. 8. 19.
반응형