본문 바로가기

분류 전체보기237

식별관계와 비식별관계 차이점 PK(기본키)테이블에서 각행을 구별하기 위한 키각행을 구별하기 위함이기 때문에 Null 이면 안되고 Unique해야 한다.노란키가 기본키이다. FK(외래키)타테이블을 참조하기 위한 키N:1 관계에서는 N이 FK를 갖는다.파란키가 외래키이다.각 테이블마다 관계를 설정할 때 외래키를 사용합니다. 외래키를 사용하여 join할 수 잇습니다.외래 키를 사용하여 테이블 간 관계를 정립해 줄 때 사용하는 전략은 크게 식별 관계, 비식별 관계 전략이 있습니다. 식별관계주문상품 테이블에서 파란키인 주문Key, 상품Key가 외래키이자 기본키가 된다.외래키가 기본키도 되었으니, null이 되면 안된다. null이 되면 안된다는 소리는 상품과 주문이 있어야 주문 상품을 생성할 수 있다는 것이다.즉, 주문상품의 데이터정합성을 .. 2024. 4. 25.
[프로그래머스] 미로 탈출 명령어 / 자바 문제          프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1 번째 시도    1. 한 번에 정답 결론내리기 힘드니  정답 루트 다 도출 후 탐색하기2. or 사전순으로 먼저 탐색하기2번이 구현이 쉬으므로 2번 선택 // [아이디어] // d(아래)>l(왼쪽)>r(오른쪽)>u(위쪽)// 위치 비교 후 아래쪽으로 가야 하면 상하 움직임보다 먼저 나오기, 위쪽으로 가야 하면 상하 움직임이 위쪽보다 먼저 나오기// 최소 이동거리와 k는 2의 배수 만큼 차이 나야 한다 아니다면 impossible!// [구현목록]//.. 2024. 4. 24.
항해99 26일차 TIl( 단어 변환 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 target -> start로 가는 길 찾기 DFS ? BFS? 이와 같은 단어 찾기 아니면 백트래킹 DFS 최소 횟수이니까 최단 거리? BFS 최소 횟수 = 최단 거리로 판단, BFS 구현 BFS를 이해하기 쉽게 디버깅 넣은 코드 import java.util.*; class Word { String name; int index; int cnt; Word(String name, int index, int cnt) { this.name= name; this.index = index; thi.. 2024. 4. 23.
[프로그래머스] 네트워크 / 자바 문제          프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1 번째 시도   DFS 문제인접행렬 탐색할 때 대각선 기준으로 위 아래 둘 중 하나만 봐도 된다.이거 구현하려니 머리가 터질 것 같았다 패스 ~방문한 적이 없다면 그 노드를 기준으로 dfs 해주고 answer++ 해준다..dfs는 연결되어 있는 모든 노드들을 탐색한다.중복탐색을 방지하기 위해 visted = true인 곳은 가지 않는다.import java.util.*;class Solution { public int solution(int n, int[][] compu.. 2024. 4. 22.
항해 99 25일차 TIL( 게임 맵 최단거리 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 DFS 문제 DFS를 통해 동,서,남,북 위치 중 갈 수 있는 곳을 다 탐색한다. 이때 depth로 길이를 알 수 있다. 계속 최소 depth를 업데이트 한다. import java.util.*; class Solution { int[] x = new int[]{1,0,0,-1}; int[] y = new int[]{0,1,-1,0}; boolean[][] visited; int answer = Integer.MAX_VALUE; public int solution(int[][] maps) .. 2024. 4. 22.
항해99 24일차 TIL( 타겟 넘버 / 프로그래머스) 문제          프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1 번째 시도   DFS 이용마지막 노드까지 도착했을 때 타켓 숫자면 카운팅DFS 파라미터에 들어가야 할 것들DFS 실행시킬 배열깊이타켓 넘버이전합//dfs로 플러스 마이너스 다 붙여가며 해당 숫자 카운트import java.util.*;class Solution { int answer = 0; public int solution(int[] numbers, int target) { dfs(numbers, 0, target, 0); return answer; .. 2024. 4. 21.
항해99 23일차 TIL ( 배달 / 프로그래머스 ) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 가중치가 있는 그래프 해결법: 다익스트라 알고리즘 관계도에따라 map을 만든다. start에서 갈 수 있는 곳들을 탐색하고 disct배열에 기록해둔다. disct 에서 방문한 노드를 제외한 노드중에 가장 가까운곳으로 간다. 위의 사항들을 반복한다. import java.util.*; class Solution { boolean[] visited; int[] disct; int[][] map; int n; public int solution(int N, int[][] road, int K) .. 2024. 4. 20.
항해99 22일차 TIL(큰 수 만들기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 한 번에 정답을 도출할 수 있는가 Yes or No No, 숫자 가장 앞에서부터 큰 숫자를 고른다고 해도 안 되고 가장 작은 숫자를 뺀다고 해도 안된다. 뺄 수 있는 숫자 다 빼보고 탐색해보기 완전 탐색이라라고 하기엔 시간복잡도에서 걸릴 것 같다 다시 2번으로 돌아가기 한 번에 정답을 도출 할 수 있는가 Yes or No Yes, 탐욕스러운 알고리즘 정답을 만들어야 할 최소한의 숫자들을 뒤에 남겨놓고 앞에 숫자에서 하나 뽑는다. 그 과정을 반복한다. ex) 입출력 예2번 {}선택 존 {}도.. 2024. 4. 19.
항해 21일차 99 TIL (공원산책/프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 구현 문제여서 아이디어는 설명 안하겠다. isWalk: 갈 수 있는 길인지 확인하는 함수 separate: 방향, 거리를 계산해 {x,y}로 반환하는 함수 import java.util.*; class Solution { public int[] solution(String[] park, String[] routes) { int xLength = park[0].length(); int yLength = park.length; int[] startInd = new int[2]; startInd.. 2024. 4. 18.