#13023 ABCDE문제설명5명의 인물이 모두 연결 되어 있으면 1출력5명의 인물이 모두 연결 되어 있지 않으면 0을 출력해준다. 해결방법친구관계의 연결을 '이중행렬'로 표현했고 관계파악은 dfs와 백트래킹으로 해주었다. 여기서 다시 유의할 점은1. 시작 노드가 정해지지 않았으니까 모든 경로에서 dfs를 돌려야한다.2. A부터 D까지 경로는 5니까 cnt가 5일때까지만 찾으면 된다.3. 백트레킹으로 경로가 실패한 경우에는 되돌아가줘야 한다. 전체코드더보기import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class BojA..
전체 글
소프트웨어학부 재학중/개발을 기록합니다.SchemaSchema는 데이터베이스의 구조와 제약 조건을 정의하는 메타데이터의 집합이다. 스키마는 데이터베이스의 구성 요소들(예: 테이블, 열, 인덱스 등)에 대한 정의와 이들 간의 관계를 나타내며, DBMS이 데이터를 저장, 관리, 조회하는 방식을 규정한다. 스키마는 데이터베이스의 논리적 설계와 관련이 있으며, 데이터베이스 사용자가 데이터와 상호작용하는 방식을 결정하는 중요한 요소이다. Schema의 3계층스키마는 일반적으로 ANSI/SPARC 모델의 three-schema architecture에 따라 외부 스키마, 개념 스키마, 내부 스키마로 구분된다. 이 구조는 데이터베이스 시스템에서 데이터의 물리적 저장과 논리적 표현을 분리하고, 데이터의 관리를 효율적으로 수행할 수 있도록 돕는다. 1. Ex..
트래픽이 높아질 때, DB 관리하는 방법1. Scale-Up (서버 스펙 업그레이드)정의: 서버의 하드웨어 성능을 업그레이드하여 더 많은 트래픽을 처리할 수 있도록 하는 방식이다. CPU, 메모리, 디스크 I/O 등을 확장하여 성능을 높인다.장점: 단일 서버만 관리하기 때문에 복잡성이 낮고, 성능 향상이 직접적이다.단점: 하드웨어 업그레이드에 따른 비용이 많이 든다. 특정 시점 이후에는 하드웨어 성능의 물리적 한계에 도달한다. 2. Scale-Out (수평적 확장)정의: 동일한 역할을 하는 여러 서버를 추가하여 트래픽을 분산 처리하는 방식이다. 일반적으로 로드 밸런서를 통해 여러 DB 서버로 트래픽을 나누어 처리한다.장점: 트래픽 증가에 따라 서버를 추가하면 확장성이 높아지며, 단일 서버 장애 시에도 서..
2022-2 Big Data Security 수업에서 진행했으며, 주제는 "데이터 처리 및 머신러닝 알고리즘을 사용한 클러스팅과 시각화" 이었다. 첫번째로, 많은 데이터를 처리하기 위해 데이터 전처리를 해주었다. 그 과정에서 고정 길이 데이터와 가변 길이 데이터 차이점을 배웠다. 1. fixed length을 위한 data load고정길이는 레코드가 동일한 길이를 유지하는 데이터 구조를 의미한다. SQL에서 CHAR타입을 생각하면 된다. import pandas as pd# 고정 길이 데이터를 읽어오는 코드data = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/data-fixed-length/train.csv')# 데이터를 데이터 프레임 형식으로 변..
#1074 Z문제설명1. N이 주어진다. 여기서 N은 2^N * 2^N으로 주어진다.2. 행과 열이 주어질 때, 몇번째로 그 행과 열을 방문한지 출력해야 한다. 해결방법고안1. 예시를 보면 분할 정복 문제임을 알 수 있다. 1사분면, 2사분면, 3사분면, 4사분면으로 계속해서 나눌 수 있다.2. 따라서 재귀로 몇사분면인지 찾고, 몇번째로 방문했는지 계속해서 더하면 된다. 그래서 find함수를 작성해서 사분면으로 나누고 몇번째인지 count를 더해주었다.private static void find(int r, int c, int size){ if(size == 1) { return; } if(r = size/2){ //2사분면 find(r, c-size/2, ..
#2110 공유기 설치문제 이해처음에는 문제 이해가 가지 않았다.... 흠냐문제를 이해하자면 우선, '거리'에 집중하면 된다. 1. 집 n 개가 있다.2. 집의 좌표가 주어진다.3. 공유기의 개수가 주어진다.4. c개의 공유기를 n개의 집에 설치한다.5. 이때 최대 거리를 출력한다. 해결방법 고안'이진탐색'으로 접근하자 나는 이진탐색 문제라고 해서 항상 하던 것처럼 인덱스를 잘라서 접근하려고 했다..근데 이번에는 거리에 이진탐색으로 반씩 줄여서 접근하면 된다.최소부터 최대까지, 공유기를 설치할 수 있는 수에서 거리의 최댓값을 구하면 되는 것이다 나는 무슨 단어에 집착하는 경향이 있는데 이번에도 '인접한'이라는 단어에 넘어가서 좀 헤맸다. ㅜ_ㅜ이진탐색으로 구한 거리를 사용해서 집에 설치, 그 집 좌..
문제 이해 문제보러가기 문제 이해부터 해보자.핵심은 아래와 같다. 이렇게 갈 수 있는 거리의 최대값을 구해야 한다.!!!! 문제 이해를 하면 DFS + 백트레킹이 떠오를 것이다.Why?1. 모든 가능한 경로를 탐색하면서 가장 긴 경로를 찾는 유형의 문제 -> dfs2. 각 경로에서의 최대 길이를 저장하고, 경로의 조건에 맞지 않는 경우 -> 백트래킹 해결방법 고안 K만 없으면 그냥 dfs 하면 되는데 k 때문에 고려해야 하는 상황이 있다;; 그래서 K를 아직 안쓴 경우와, K를 써버린 경우로 나누었다. k가 없을 때 로직// k가 없을 때if (!flag) { // 자신보다 작으면 이동 if (h > map[nx][ny]) { visited[nx][ny] = tru..
Disjoint-set- 서로소 또는 상호배타 집합들은 서로 중복 포함된 원소가 없는 집합들이다.- 집합에 속한 하나의 특정 멤버를 통해 각 집합들을 구분한다.- 서로소 집합을 표현하는 방법 : 연결리스트, 트리- 서로소 집합 연산 : Make-Set(x), Find-Set(x), Union(x, y) 연결 리스트- 같은 집합의 원소들은 하나의 연결리스트로 관리한다.- 연결리스트의 맨 앞의 원소를 집합의 대표 원소로 삼는다.- 각 원소는 집합의 대표원소를 가리키는 링크를 갖는다. 트리- 같은 집합의 원소들을 하나의 트리로 표현한다.- 자식 노드가 부모 노드를 가리키며 루트 노드가 대표자가 된다. 트리의 배열을 이용하면 아래와 같다. 자바로 나타내보기public class DisjoinSetTest {..