본문 바로가기
반응형

개념공부41

[Union Find, Disjoint Set] 유니온 파인드 함수 구현 방법(재귀 사용!) 백준 1717번 문제를 풀 때 UnionFind를 사용하였다. 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net Union Find는 그래프알고리즘의 일종으로 여러노드가 존재할 때 각 노드가 연결되어 있는지를 집합을 이용하여 확인하는 방식이다. Union Find를 하기위해서는 크게 3가지의 함수가 필요하다. (꼭 필요한 함수는 2가지 이다) 1. make()함수 - 먼저 각 노드들의 부모노드를 저장할 parents배열을 초기화 시켜준다. (parents 배열을 만드는 .. 2021. 9. 12.
JDBC LIKE http://yoonbumtae.com/?p=2842 JDBC에서 LIKE쓸때 문제점 ?에는 양 옆에 자동으로 ''가 들어가서 변경해주어야한다. 스프링(Spring): JdbcTemplate에서 LIKE 키워드 사용 시 SQL Injection 방지 코드 작성하는 방법 (Mysql, Mariadb) 먼저 아래 코드는 일단 동작하는 코드입니다. 표면적인 문제는 없지만 SQL Injection(이하 인젝션)의 문제점에 노출되어 있습니다. public List findByTitleAndLocale(String keyword, String locale) yoonbumtae.com 2021. 9. 10.
DB SubQuery SubQuery - Query문 내에 작성하는 Query를 SubQuery라고한다. - 기본적으로 외부 Query가 수행되기 전에 SubQuery가 먼저 수행되고 그결과를 외부 Query에서 사용한다. 단, 상호 연관 쿼리는 외부 Query한행에 대해 SubQuery가 수행되므로 SubQuery는 외부 Query의 행 수만큼 수행된다. (단, 성능이 느리기때문에 안쓰는 걸 추천) - 종류 - where절에서 사용하는 단일행, 다중행, 다중열, 상호 연관 subquery - from절에서 사용하는 inline view - 스칼라 서브쿼리(단일행, 단일열)로 조회되는 sub query - sub query가 사용되는 위치 select절, from절, where절, having절, order절 => group.. 2021. 9. 8.
DB Join - 조인은 테이블의 스키마 파악이 정확하게 이루어 져야한다. 어떤 테이블의 어떤 컬럼을 기준으로 해서 조회할지에 대해 먼저 생각하고 계속 연결하면 Join이 된다. Join - 두개 이상의 테이블을 연결해서 Query(질의)하는 것 - 종류 1. 데이터 추출되는 것에 따라서 Inner Join - 조인을 위해 사용하는 비교조건(조인조건)에 맞는 데이터만 조회 => 조인 조건에 맞지 않는 데이터는 조회되지 않는다. - join할때 outer join으로 표시하지 않으면 기본적으로 inner join으로 조회된다. Outer Join - 조인 조건에 맞지 않는 데이터도 조회된다. 2. 비교 조건에 따라서 Equi Join - 비교하는 두 컬럼의 데이터가 정확하게 일치할 경우 조회됨. => 비교 연산자로 = .. 2021. 9. 7.
2차원 배열을 1차원 배열로 관리하는 법 3*3 배열이 있다고 하자 1 2 3 4 5 6 7 8 9 행 : 3 열 : 3 이를 1차원 배열로 정리하면 1 2 3 4 5 6 7 8 9 index로는 0 1 2 3 4 5 6 7 8 이다. 여기서 6의 위치를 찾으려면 index 5이므로 int x = index / 열 int y = index % 열 즉 x = 5 / 3 = 1 y = 5 % 3 = 2 이므로 map[x][y] = map[1][2] = 6이다. 3*4 배열이 있다고 하자 1 2 3 4 5 6 7 8 9 10 11 12 행 : 3 열 : 4 마찬가지로 1차원 배열 index로 정리하면 0 1 2 3 4 5 6 7 8 9 10 11 이다. 여기서 7의 위치를 찾는다고 가정하자, 7은 index 값이 6이므로 int x = index /.. 2021. 8. 25.