Key의 종류 슈퍼 키 (Spuer Key) : 유일성을 만족하는 키. 예를 들면, {학번 + 이름}, {주민등록번호 + 학번} 복합 키 (Composite Key) : 2개 이상의 속성(attribute)를 사용한 키. 후보 키 (Candidate Key) : 유일성과 최소성을 만족하는 키. 기본키가 될 수 있는 후보이기 때문에 후보키라고 불린다. 예를 들면, 주민등록번호, 학번 등 기본 키 (Primary Key) : 후보 키에서 선택된 키. NULL값이 들어갈 수 없으며, 기본키로 선택된 속성(Attribute)은 동일한 값이 들어갈 수가 없다. 대체 키 (Surrogate Key) : 후보 키 중에 기본 키로 선택되지 않은 키. 외래 키 (Foreign Key) : 어떤 테이블(Relation) ..
다익스트라 (Dijkstra) 알고리즘이란? 다익스트라 (Dijkstra) 알고리즘은 최단 경로 알고리즘으로 그래프에서 특정한 노드에서 다른 모든 노드까지의 최단 경로를 구하는 알고리즘이다. 그리드 알고리즘 기반에 동적 계획법(DP)을 활용한 알고리즘이며 그래프에서 양수 가중치만 있을 때 사용할 수 있다. 왜 그리디 기반? 계속해서 거리 값이 가장 작은 노드를 선택하기 때문 왜 동적 계획법(DP)? 최단 거리는 여러 개의 최단 거리로 구성되어 있다. 이전까지의 최단 경로들이 최단 경로를 구하기 위해서 재사용 된다. 다익스트라 알고리즘의 동작 동작 설명 거리, 방문 테이블 준비 (거리 테이블은 INF, 방문 테이블은 False로 모두 초기화) 시작 노드 선택 (방문 처리) 연결되어 있는 노드와의 최단 거리..
주어진 숫자가 변속 조건에 맞으면 각 조건에 맞는 결과를 출력하는 문제이다. Softeer - 현대자동차그룹 SW인재확보플랫폼 현대자동차에서는 부드럽고 빠른 변속이 가능한 8단 습식 DCT 변속기를 개발하여 N라인 고성능차에 적용하였다. 관련하여 SW 엔지니어인 당신에게 연속적으로 변속이 가능한지 점검할 수 있는 프 softeer.ai 테스트 케이스 [TC1] 입력 : 1 2 3 4 5 6 7 8 출력 : ascending 해결 과정 기본적인 결과로 mixed로 초기화를 해놓고, ascending이나 descending의 조건과 일치하면 해당 값으로 다시 초기화하는 방식으로 해결했다. 코드 import sys sys.setrecursionlimit(10**6) input = sys.stdin.readli..
배낭에 보석을 최대한 담아 그 가치를 출력하는 문제이다. Softeer - 현대자동차그룹 SW인재확보플랫폼 루팡은 배낭을 하나 메고 은행금고에 들어왔다. 금고 안에는 값비싼 금, 은, 백금 등의 귀금속 덩어리가 잔뜩 들어있다. 배낭은 W ㎏까지 담을 수 있다. 각 금속의 무게와 무게당 가격이 주어졌을 softeer.ai 테스트 케이스 [TC1] 입력 : 100 2 90 1 70 2 출력 : 170 해결 과정 가격이 비싼 보석부터 담고, 남은 공간이 있으면 점점 가치가 적은 보석을 넣어 최대한 배낭을 채운다. 코드 import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline jer = [] result = 0 W, N = map(int, input..
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 문제이다. Softeer - 현대자동차그룹 SW인재확보플랫폼 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. softeer.ai 테스트 케이스 [TC1] 입력 : 3 4 출력 : 7 해결 과정 기본적인 연산자를 통해 해결할 수 있다. 코드 import sys input = sys.stdin.readline T = int(input()) for test_case in range(1, T + 1): a, b = map(int, input().split()) num = a + b print(f'Case #{test_case}: {num}') 주석 처리 import sys input = sys.stdin.readline T = i..
기본 문법 들여쓰기 (indent) YAML은 기본적으로 2칸 또는 4칸을 지원한다. 필자는 2칸 들여쓰기를 한다. 2칸 들여쓰기(추천) person: name: PSC job: Developer skills: - docker - spring 4칸 들여쓰기 person: name: PSC job: Developer skills: - docker - spring 데이터 정의 (map) 데이터는 key : value 형식으로 정의한다. apiVersion: v1 kind: pod metadata: name: echo labels: type: app 배열 정의 (array) 배열은 - 로 표시한다. person: name: psc job: Developer skills: - docker - spring 주석 ..
도커 이미지 (Docker Image) Docker image는 파일로 어플리케이션 실행에 필요한 독립적인 환경을 포함하며, 런타임 환경을 위한 일종의 템플릿이다. 또한, 소스 코드, 라이브러리, 종속성, 도구 및 응용 프로그램을 실행하는데 필요한 기타 파일을 포함하는 불변(변경 불가) 파일이다. 도커 레지스트리, 레포지토리, 태그 (Docker Registry, Repository, Tag) 레지스트리(Registry) 도커 이미지를 관리하는 공간 도커 허브를 기본 레지스트리로 설정하고 있다. 레지스트리는 Docker hub, Private Dokcer Hub, 회사 내부용 등으로 나뉜다. 레포지토리(Repository) 레지스트리 내에 도커 이미지가 저장되는 공간 이미지 이름이 사용되기도 한다. Gi..
문서 객체 모델 (DOM) 자바스크립트를 이용하여 웹 문서에 접근하고 제어할 수 있도록 객체를 사용해 웹 문서를 체계적으로 정리하는 방법 DOM 트리 웹 문서에 있는 요소들 간의 부모, 자식 관계를 계층 구조로 표시한 것 나무 형태가 되기 때문에 “DOM 트리“라고 함. 노드(node) : DOM 트리에서 가지가 갈라져 나간 항목 루트 노트(root node) : DOM 트리의 시작부분(html) DOM 을 구성하는 원칙 모든 HTML 태그는 요소(element)노드 웹 문서의 텍스트 내용은 요소 노드의 자식 노드인 텍스트(text) 노드 태그의 속성은 요소 노드의 자식 노드인 속성(attribute) 노드 주석은 주석(comment)노드 DOM 요소 접근/속성 가져오기 getElementById("id..