전체 글 461

[데이터베이스] 스키마(Schema), 인스턴스(Instance), 상태(State)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.20 - [Computer Science/데이터 베이스] - [데이터베이스] 데이터 모델 [데이터베이스] 데이터 모델 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.10 - [Computer Science/데이터 베이스] - [데이터베이스] 데이터베이스의 특징 [데이터베이스] 데이터베이스의 특징 앞의 글을 읽으시면 이해에 도움 hi-guten-tag.tistory.com 1. 스키마(Schema), 인스턴스(Instance), 상태(State) 스키마(Schema)란 데이터베이스의 구조, 타입, 제약 조건을 명시해 놓은 메타데이터의 집합이고, Data Base의 description입니다. 일반적으로 스키마는 설계 과정에 명시하여 자주 ..

[데이터베이스] 데이터 모델

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.10 - [Computer Science/데이터 베이스] - [데이터베이스] 데이터베이스의 특징 [데이터베이스] 데이터베이스의 특징 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.09 - [Computer Science/데이터 베이스] - [데이터베이스] 데이터베이스의 정의 [데이터베이스] 데이터베이스의 정의 1. 데이터베이스(Dababase)란? 데이 hi-guten-tag.tistory.com 1. 데이터 모델이란? 데이터베이스의 주요 특징 중 하나는 데이터 저장 구조의 세부 사항을 사용자들로부터 은닉하여 Data Abstraction을 제공한다는 것입니다. 따라서 여러 사용자는 각자 선호하는 수준에서 데이터를 볼 수 있습니다. Da..

[프로그래머스 - Python] 154538 - 숫자 변환하기

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 DP를 이용해서 문제를 풀었다. 조금 더 최적화를 하기 위해서 for loop의 범위에도 제한을 주었고, 아래의 조건에도 제한을 주었다. BFS로 풀까 잠시 고민했는데, x = 1이고, y = 1,000,000이고, n = 1일 경우에 제일 빠른 경우는 19번이다. 첫 번째 단계에서 3개, 두 번째 단계에서 3^2개.... 19번째 단계에서는 3^19개.. 가 생..

[프로그래머스 - Python] 154540 - 무인도 여행

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 이중 for loop를 사용하여, 모든 맵을 훑는다. 이때 무인도인데, 방문한 적이 없다면 BFS를 통해 연결된 무인도를 찾고, 먹을 수 있는 모든 음식을 찾는다. 이를 append 하고, 반환은 정렬해서 반환하도록 한다. 2. 코드 from collections import deque def solution(maps): def bfs(y, x): food = i..

[프로그래머스 - Python] 42883 - 큰 수 만들기

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 예전에 오등큰수와 크게 만들기를 푼 적이 있는데, 해당 알고리즘을 그대로 사용했다. 아래 내용을 참고하면 좋을 것 같다. 2023.08.25 - [Computer Science/알고리즘] - [백준 - Python] 2812 - 크게 만들기 [백준 - Python] 2812 - 크게 만들기 0. 문제 링크 https://www.acmicpc.net/problem/2..

[프로그래머스 - Python] 67257 - 수식 최대화

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 우선 입력으로 들어오는 수식을 +, -, *로 쪼개서 저장을 해야 한다. 이를 위하여 re를 사용했다. 또한 우선순위를 위해서는 모든 경우의 수를 따져야 하는데, 이를 위해서 itertools.permutations를 사용했다. eval을 통해서 문자열인 수식을 계산하고, 다시 방정식에 넣는 방식으로 문제를 해결했다. 이때 whlie문을 사용해서 인덱스를 조절했는데..

[프로그래머스 - Python] 68936 - 쿼드압축 후 개수 세기

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 Divide and Conquer 방식을 사용했고, 트리 내에서는 반복문을 사용하여 문제를 해결하였다. 첫 번째 숫자인 bef와 반복문에서 나오는 숫자가 다를 경우 압축이 불가능하므로, 해당 트리를 사등분하여 재귀를 호출했다. 사등분 한 쿼드 트리를 모두 호출한 이후에는 return을 함으로써, 반복문을 바로 종료했다. -> 트리를 사등분하면 더 이상 볼 필요가 없..

[프로그래머스 - Python] 42583 - 다리를 지나는 트럭

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 이 문제는 deque를 사용하여, 실제 다리와 트럭의 움직임을 구현하면 된다. 만약 새로운 트럭이 올라갈 수 없는 상태라면. 0을 append 함으로써 빈 공간을 표현한다. 2. 코드 from collections import deque def solution(bridge_length, weight, truck_weights): answer = 0 dq = dequ..

[프로그래머스 - Python] 86052 - 빛의 경로 사이클

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/86052 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 일단 문제에서 체크해야 되는 요소가 방향, 위치, 다음 경로이다. 사실 방향, 위치, 다음 경로는 구현의 영역이기 때문에 개인 역량에 따라 달라진다. 아무튼 우리는 사이클을 확인해야 하는데, 나는 추가적으로 check를 사용해서 해결했다. check는 [y 좌표][x 좌표][4방향]으로 확인하는데, 특정 좌표에서 특정 방향으로 간 적이 있다면 True로 표시한다. ..

[프로그래머스 - Python] 118667 - 두 큐 합 같게 만들기

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 이 문제는 큐 두 개를 완전 탐색으로 해결하면 안 된다. 큐의 길이는 최대 300,000이기 때문에, 시간 초과가 날 우려가 있다. 따라서 문제를 조금 더 멀리서 생각을 해보면, 모든 원소의 순서는 일정하다로 결론이 난다. 따라서 Circle Queue처럼 생각할 수 있다. 그 원형 큐에서 적당히 가림막을 설치하고, 가림막 안의 원소와 가림막 밖의 원소의 합이 같..