gossipProtocol, 관계형 DB Schema 작성,
🖥 알고리즘
gossipProtocol
세로와 가로의 길이가 각각 M, N인 마을지도가 배열로 주어졌을 때,
'1'은 주민이 있는 집을 의미하고 '0'은 주민이 없는 땅
이 마을은 소문이 시작되면 하루에 상하좌우 한 칸 바로 옆에 있는 집으로 퍼지는데
특정 주민의 집 (R, C)으로부터 어떤 소문이 시작될 경우,
마을 전체로 소문이 퍼지는데 걸리는 시간(일)을 리턴
입력
인자 1 : village
- string 타입을 요소로 갖는 배열
- village.length는 M
- village[i]는 string 타입
- village[i].length는 N
- village[i][j]는 세로로 i, 가로로 j인 지점의 정보를 의미
- village[i][j]는 '0' 또는 '1'
인자 2: row
- number 타입의 0 이상의 정수
- 소문이 시작되는 집의 세로 위치
인자 3: col
- number 타입의 0 이상의 정수
- 소문이 시작되는 집의 가로 위치
출력
number 타입을 리턴
주의사항
- M, N은 100 이하의 자연수
- row, col에는 항상 주민이 살고 있음
- 모든 집은 연결되어 있어 한 집에서 다른 집으로 가는 경로가 항상 존재
- village를 그래프로 구현하는 함수가 주어짐
입출력 예시
let village = [
'0101', // 첫 번째 줄
'0111',
'0110',
'0100',
];
let row = 1;
let col = 2;
let output = gossipProtocol(village, row, col);
console.log(output); // --> 3
/*
1. 시작: (1, 2)에서 시작, 소문이 퍼진 곳을 x로 표기
[
'0101',
'01x1',
'0110',
'0100',
]
2. 1일 뒤
[
'0101',
'0xxx',
'01x0',
'0100',
]
3. 2일 뒤
[
'0x0x',
'0xxx',
'0xx0',
'0100',
]
4. 3일 뒤: 소문이 전부 퍼짐 (끝)
[
'0x0x',
'0xxx',
'0xx0',
'0x00',
]
📖 개념
📝 수도코드
❌
🚴♀️ Sprint
관계형 DB Schema 작성
인스타그램 스키마를 작성할 때
- 나의 계정 하나를 기준으로 스키마를 작성
- 인스타그램 DB를 전반적으로 만든다는 기준으로 스키마를 작성
기준이 확실히 정립되지 않은 상태로 스키마를 작성하려고 보니 혼란스러웠다
특히 스키마는 데이터베이스의 구조와 관계를 나타내는 것인데
데이터베이스의 개념이 아직 구체적이지 않아서 프로필과 게시물도
엔티티로 정의해야하는지 헷갈린다
일단은 별도로 테이블을 만들어야 할 것 같은 항목을 최대한 분리해봤는데
프로필 테이블은 전부 참조 항목이었다
프로필은 구체적인 데이터가 담기는 테이블이라기보다는
데이터베이스에 저장된 다수의 엔티티를 사용자가 보기 편하게 만들어놓은
프론트엔드 영역인 것 같다
데이터베이스 연결과 스키마
Author And Source
이 문제에 관하여(gossipProtocol, 관계형 DB Schema 작성,), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@taeyeong8/gossipProtocol-관계형-DB-Schema-작성저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)