본문 바로가기

분류 전체보기35

[프로그래머스] 부대복귀 [Python] 1. 정답from collections import dequedef solution(n, roads, sources, destination): graph=[[] for _ in range(n+1)] answer = [] for a, b in roads: graph[a].append(b) graph[b].append(a) dist=bfs(graph,destination, n) return [dist[s] for s in sources] return answerdef bfs(graph,start,n): visited=set() queue=deque([start]) dist=[-1]*(n+1) visit.. 2025. 7. 22.
[백준] 11055 - 가장 큰 증가하는 부분 수열 [Python] https://www.acmicpc.net/problem/11055 1. 정답num=int(input())arr=list(map(int,input().split()))dp=[0 for i in range(num)]for i in range(num): dp[i]=arr[i] for j in range(i): if(arr[j] 2. 접근 num= 배열의 길이arr= 입력받은 배열dp = 가장 큰 합을 저장할 배열 현재 값보다 다음 값이 큰 경우 => 증가하는 부분 수열 조건 dp[i]= max(dp[i], dp[j]+arr[i])=> 현재 dp 값과 새로운 dp 값을 비교해서 더 큰값을 dp에 저장 max(dp) 하여 가장 큰 합 출력 2025. 7. 22.
[백준]11722 - 가장 긴 감소하는 부분 수열 [Python] https://www.acmicpc.net/problem/11722 1.정답num=int(input())arr=list(map(int,input().split()))dp=[0 for i in range(num)]for i in range(num): dp[i]=1 for j in range(i): if(arr[j]>arr[i]): dp[i]=max(dp[i],dp[j]+1)print(max(dp)) 2. 접근num: 배열의 길이arr: 입력받은 배열dp: 가장 긴 감소하는 부분수열의 길이를 저장할 배열 dp[i]= 1 => 초기값 예시와 같은 배열이 있다고 했을때10 30 10 20 20 10i는 현재 값j는 이전 값들 ( for j in range(i))if i.. 2025. 7. 22.
Jenkins CI/CD 1. Docker를 이용한 설치docker run -d -p 8080:8080 -p 50000:50000 --name jenkins-server --restart=on-failure -v jenkins_home:/var/jenkins_home jenkins/jenkins2. 초기 비밀번호 확인docker logs jenkins-server 명령을 수행한 후 확인:docker exec -it 컨테이너ID cat /var/jenkins_home/secrets/initialAdminPassword 명령 수행3.localhost:8080 으로 접속해서 초기 설정- 기본 플러그인 설치- 계정 설정- URL 설정(http://localhost:8080)4. 샘플 프로젝트 생성=> 화면에서 New Item 을 클릭=.. 2025. 7. 18.
[프로그래머스] 롤케이크 자르기 [Python] https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 정답from collections import Counter def solution(topping): answer=0 left=set() right=Counter(topping) for i in range(0, len(topping)): left.add(topping[i]) right[topping[i]] -= 1 if right[topping[i]] == 0: del .. 2025. 7. 15.
Spring boot CQRS 적용하기 (MongoDB, MySQL, Kafka) 개인 기록용이라 틀린 내용이 있을 수 있습니다!1. CQRS (Command Query Responsibility Segregation)란?CQRS는 시스템의 데이터 쓰기(Command)와 데이터 읽기(Query) 책임을 분리하는 아키텍처 패턴입니다.Command (쓰기): 데이터의 상태를 변경하는 작업입니다. 예를 들어, 회원가입, 주문 생성, 상품 재고 업데이트 등이 여기에 해당합니다. 데이터의 정확성과 일관성, 무결성이 매우 중요합니다.Query (읽기): 데이터의 상태를 조회하는 작업입니다. 예를 들어, 상품 목록 조회, 사용자 정보 열람, 주문 내역 확인 등이 여기에 해당합니다. 빠른 응답 속도와 유연한 조회가 중요합니다.일반적인 시스템에서는 쓰기와 읽기 모두 동일한 데이터베이스를 사용합니다. .. 2025. 7. 15.