반응형
문제 설명 입출력 예제 풀이 코드 A와 B는 모두 0 이상 10000이하의 수라고 했으므로 visited 배열의 수를 10000으로 초기화 해주었다. 그리고 방문하지 않은 수는 bfs 탐색을 시작한다. 여기서 핵심은 일반적인 bfs 문제의 dx, dy 상하좌우 이동 처럼 D, S, L, R 을 활용하는 것이다. 큰 난이도가 있는 문제는 아니라서 아래 코드와 주석을 참고하면 이해될 것이다. 참고로 테스트 케이스 반복문 때문인지 파이썬으로 제출하면 시간초과가 났고 PYPY3로 제출하니 통과할 수 있었다. 정답 코드 from collections import deque import sys input = sys.stdin.readline def applyCommand(n, command): if command ..
@ManyToOne - 다대일 ( N : 1) 연관관계 매핑 시 가장 많이 사용하는 매핑 방법이다. 다대일은 외래키(FK)를 갖고 있는 "다"쪽이 연관관계의 주인이 된다. 단방향 매핑 @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; private String username; @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; ... } @Entity public class Team { @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String nam..
이번 포스팅에서 JPA의 연관관계 매핑의 주인이란 무엇인지? 또 연관관계 매핑의 주인이 왜 필요한지에 대해 알아보려한다. 연관관계 주인이 필요한 이유에 대해 먼저 말하자면, 객치 지향의 패러다임과 데이터베이스의 패러다임에 차이가 있기 때문이다. 먼저 각 패러다임의 차이를 이해할 수 있도록 양방향과 단방향 매핑에 대해 설명하고자 한다. 양방향과 단방향 매핑 양방향 : 두 객체 모두가 각각 참조용 필드를 갖고 참조 단방향 : 두 객체 사이에 하나의 객체만 참조용 필드를 갖고 참조 데이터베이스에서 양방향과 단방향 데이터베이스에는 양방향과 단방향이라는 개념이 없다. 외래키(FK) 하나면 양쪽의 연관관계를 알 수 있다. (양방향 관계의 특성을 갖는다.) 데이터 베이스 테이블은 외래키(FK) 하나로 양쪽 테이블을 ..
문제 설명 풀이 코드 각 층마다 버튼을 몇번씩 눌려 도달했는지 저장하기 위해 visited[] 배열을 선언하였다. 강호의 위치(S)부터 bfs로 탐색을 시작한다. 강호의 위치(S)가 스타트링크(G)에 도착하면 스타트링크까지 도착하는데 눌린 버튼횟수를 반환한다. visited[cur] 정답 코드 from collections import deque import sys input = sys.stdin.readline f, s, g, u, d = map(int, input().split()) # 층수, 강호, 스타트링크, 위, 아래 visited = [-1] * (f + 1) def bfs(start): q = deque() q.append(start) visited[start] = 0 while q: cur..
기본키(primary key) 매핑하는 방법은 총 2가지로 직접 할당과 자동 생성이 있다. 직접 할당 : @Id 어노테이션만 사용하여 Id값을 직접할당 자동 생성 : @Id와 @GeneratiedValue를 사용하여 원하는 키 생성 전략을 선택 자동 생성의 키 생성 전략은 다음과 같이 4가지로 분류 된다. 키 생성 전략 IDENTITY : 데이터베이스에 위임 (MYSQL) SEQUENCE : 데이터베이스 시퀀스 오브젝트 사용 (ORACLE) TABLE : 키 생성용 테이블 사용 (모든 DB에서 사용) AUTO : dialect(방언) 설정에 따라 자동 지정 (기본값) 이 각 키 생성 전략에 대해 자세히 알아보자. IDENTITY 전략 기본 키 생성을 데이터베이스에 위임하는 전략 (주로 MySQL, Pos..
객체와 테이블 매핑 @Entity @Entity가 붙은 클래스를 엔티티라고 하고 JPA가 관리 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수이다. 속성 값 속성 설명 기본값 name JPA에서 사용할 엔티티 이름을 지정한다 클래스 이름을 그대로 사용 주의할점 기본 생성자 필수이다. (파라미터가 없는 public 또는 protected 생성자) final, enum, interface, inner 클래스에서는 사용할 수 없다. 저장할 필드의 변수에 final을 사용할 수 없다. @Table 엔티티와 매핑할 테이블 지정한다. 속성 값 속성 설명 기본값 name 매핑할 테이블 이름을 지정한다 엔티티 이름 사용 catalog catalog 기능이 있는 DB에서 catalog를 매핑한다. ..