분류 전체보기 895

[G1] 백준 16991번 외판원 순회 3 C++ 비트마스킹, 다이나믹 프로그래밍, 외판원 순회 문제

리뷰 https://www.acmicpc.net/problem/16991간선의 가중치가 실수인 외판원 순회 문제 전역 변수N : 배열의 최대 크기를 정의할 상수 변수n : 도시의 수를 저장할 변수Pos : 도시의 좌표를 정의할 구조체poses : 도시의 좌표들을 저장할 Pos타입 배열Edge : 간선 정보를 정의할 구조체edges : 간선 정보를 저장할 Edge타입 벡터 배열dp : 방문 최소값을 저장할 2차원 배열 함수1. get_distdouble get_dist(const Pos& pos1, const Pos& pos2) { return sqrt(pow(pos1.x - pos2.x, 2) + pow(pos1.y - pos2.y, 2));} 두 좌표 사이의 거리를 구하기 위한 함수 2. dfsdou..

[G2] 백준 2632번 피자판매 C++ 누적합, 해시맵

리뷰 https://www.acmicpc.net/problem/2632문제를 쉽게 접근했다가 피자가 원형꼴이라는 것에 대한 처리에 애를 먹은 문제 전역 변수없음 함수1. get_slicesvoid get_slices(vector& pizza, unordered_map& dic, int size, int k) { vector prefix(2 * size + 1, 0); for (int i = 0; i 피자의 연속된 구간합을 구하기 위한 함수 문제풀이k, n, m에 값을 입력 받고, 벡터 a를 n크기로, b를 m크기로 초기화 한다. 해시맵 A, B도 초기화 해준다.a, b에 각각 n, m개의 요소를 입력 받아 저장해 준다.get_slices함수에 a, b와 관련된 요소들을 매개변수로 전달하여 호출해 ..

[G3] 백준 22860번 폴더 정리 (small) C++ 해시맵, 해시셋, 깊이 우선 탐색, 트리

리뷰 https://www.acmicpc.net/problem/22860해시를 활용한 자료구조 + 파싱을 통한 간선 제작 + 깊이 우선 탐색을 활용하여 푼 문제 폴더 정리 관련 문제는 시작은 어렵지만 풀다 보면 재미가 있다. 전역 변수folders : 폴더명을 정수로 치환하기 위한 해시맵files : 파일명을 정수로 치환하기 위한 해시맵childs : 현재 폴더에 존재하는 파일의 번호를 저장하기 위한 해시맵 + 해시셋edges : 폴더 간 간선 정보를 정의하기 위한 인접 리스트f1 : 폴더의 번호를 인덱싱 하기 위한 변수f2 : 파일의 번호를 인덱싱 하기 위한 변수total : 각 탐색 시 마다 전체 파일의 개수를 저장할 변수 함수1. dfsvoid dfs(short sn, unordered_set& ..

[메타버스 게임] 캐쥬얼 배틀로얄 프로젝트 회고

개요열심히 개발한 프로젝트를 배포하였다. 배포 대상은 삼성 청년 SW 아카데미 12기 교육생으로 다행히도 많은 싸피생들이 우리가 만든 게임이 플레이 해주었고, 여러가지 피드백을 제공해 주었다.배포는 총 4회로 이루어졌고, 배포 관련 특이사항은 하기와 같다.데모 릴리즈(3.21) : IP기반 LAN연결, P2P방식의 서비스 제공1차 릴리즈(4.3) : 소켓/유니티 미러 데디케이트 서버 추가 로그인, 매칭 등 세션 관리 진행2차 릴리즈(4.11) : 유저 피드백 및 신규 콘텐츠(팀전, 레이드, 클래스 등) 추가, 실시간 동접자 상태 확인 기능 추가3차 릴리즈(4.16) : 신규 레이드 및 쿠버네티스/ArgoCD를 활용한 데디케이트 서버 헬스체크와 리소스 최적화 진행6주라는 짧은 시간 안에 기능 개발 및 배포..

[토닥] 경계선 지능인을 위한 앱 서비스 ELK기반 로그 시스템 구현

개요마이크로서비스 아키텍처 환경에서 효율적인 로그 수집, 저장, 분석을 위한 ELK(Elasticsearch, Logstash, Kibana) 스택 기반 로깅 시스템을 구축한다.Apache Kafka를 메시지 큐로 활용하여 대용량 로그 데이터를 안정적으로 처리하고, Kafka Connect를 통해 Elasticsearch에 자동으로 인덱싱한다.시스템은 ZooKeeper, Kafka, Elasticsearch, Kibana, Kafka Connect로 구성되며, 각 마이크로서비스에서 발생하는 로그를 실시간으로 수집하여 중앙화된 모니터링 환경을 제공한다.Docker 컨테이너 기반으로 구성하여 확장성과 유지보수성을 확보하고, 개발 및 운영 환경에서 일관된 로깅 인프라를 제공한다. 로깅 시스템 구성 요소:Zoo..

[G5] 백준 3649번 로봇 프로젝트 C++ 투 포인터, 정렬

리뷰 https://www.acmicpc.net/problem/3649투 포인터 말고 이분 탐색으로 풀려고 접근 했다가 틀렸다. 이분 탐색 접근이 정답이 여러 개인 경우에는 |ℓ1 - ℓ2|가 가장 큰 것을 출력한다. 라는 조건이 좀 까다로운 것 같다. 전역 변수x : 구멍이 너비를 저장할 변수n : 레고 조각의 개수를 저장할 변수 함수없음 문제풀이x를 입력 받는 것을 조건으로 while루프를 수행한다.매 루프마다 x에 1000만을 곱해주어 나노미터 단위로 변경해 준다.매 테스트 케이스 마다 n값을 입력 받고, 벡터 legos를 n크기로 초기화해 준다.n개의 레고의 길이 정보를 legos벡터에 입력 받고, sort함수를 통해 legos벡터를 오름차순으로 정렬해 준다.변수 l을 0, r을 n - 1로 ..

[G3] 백준 9694번 무엇을 아느냐가 아니라 누구를 아느냐가 문제다 C++ 다익스트라, 경로 역추적

리뷰 https://www.acmicpc.net/problem/9694최단 거리를 구하고 방문한 노드의 번호를 출력하는 문제 전역 변수t : 테스트 케이스의 개수를 저장할 변수n : 노드의 개수를 저장할 변수m : 간선의 개수를 저장할 변수Edge : 간선 정보를 정의할 구조체Pos : 현재 노드와 누적 가중치를 정의할 구조체, 누적 가중치를 기준으로 오름차순 정렬한다. 함수1. dijkstravector dijkstra(const vector>& edges) { priority_queue pq; pq.push({ m - 1, 0 }); vector dist(m, 2e9); vector path(m); dist[m - 1] = 0; while (!pq.empty()) { Pos pos = pq.top..

[G4] 백준 22865번 가장 먼 곳 C++ 다익스트라

리뷰 https://www.acmicpc.net/problem/22865친구들의 집으로 부터 각 땅의 최단 거리를 구하고, 친구들이 살고 있는 집으로부터 가장 먼 곳의 땅 번호를 출력하는 문제 전역 변수N : 배열의 최대 크기를 정의할 상수 변수n : 자취할 땅 후보의 개수를 저장할 변수m : 땅과 땅 사이를 잇는 도로의 개수를 저장할 변수a, b, c : 친구 A, B, C가 사는 위치를 저장할 변수Edge : 간선 정보를 정의할 구조체edges : 간선 정보를 인접 리스트로 저장할 벡터 배열Pos : 현재 위치와 누적 가중치를 정의할 구조체, 누적 가중치를 기준으로 오름차순 정렬한다. 함수1. dijkstravector dijkstra(int sn) { priority_queue pq; pq.push..

[G3] 백준 17182번 우주 탐사선 C++ 플로이드 와샬, 다이나믹 프로그래밍, 비트마스킹

리뷰 https://www.acmicpc.net/problem/17182플로이드 와샬로 정점간 최단 거리를 구하고 dp를 활용해 모든 행성을 탐사하는데 걸리는 최소 시간을 구하는 문제 전역 변수N : 배열의 최대 크기를 정의할 상수 변수n : 행성의 개수를 저장할 변수k : 탐색을 시작한 행성 번호를 저장할 변수lst : 행성간 거리를 저장할 2차원 배열dp : x개의 행성을 탐사했고, y번째 행성에 있을때의 최소 시간을 저장할 2차원 배열 함수1. dfsint dfs(int mask, int cur) { if (mask == (1 각 행성을 방문하며 모든 행성을 방문하는 최소 시간을 구하기 위한 함수 문제풀이n, m값을 입력 받고, n*n크기의 인접 행렬 lst에 값을 입력 받아 초기화를 진행해 ..

[P4] 백준 14868번 문명 C++ 너비 우선 탐색, 플러드 필, 유니온 파인드

리뷰 https://www.acmicpc.net/problem/14868백준 서버가 터진건지 문제 채점만 5분이 걸렸다, 첫트는 시초가 떴으나 조금 최적화 해주니 AC를 받은 문제 전역 변수N : 배열의 최대 크기를 정의할 상수 변수K : 문명의 최대 개수를 정의할 상수 변수n : 세계의 한변의 크기를 저장할 변수k : 문명 발상지의 개수를 저장할 변수lst : 세계 정보를 저장할 2차원 배열Pos : 현재 위치와 문명 번호를 정의할 구조체flood : floodfill을 수행할 위치와 문명 번호를 저장할 Pos타입 큐parent : 각 문명 번호가 속한 그룹을 저장할 배열dx, dy : 4방향 탐색을 위한 방향 배열 함수1. Findint Find(int a) { if (parent[a] == a) ..

728x90