전체 글 461

[프로그래머스 - Python] 142085 - 디펜스 게임

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 일단 문제를 보면 최소 비용으로 막아야 되는 게 확실하고, K개는 무손실로 막을 수 있다. 따라서 적군이 들어올때마다 힙에다가 집어넣는다. 만약 힙의 크기가 K를 넘는다면, 가장 작은 적군의 수를 빼서 나의 병사에서 뺀다. 결론적으로 가장 작은 적군만 선택해서 막은 상태가 된다. 2. 코드 import heapq def solution(n, k, enemy): a..

[프로그래머스 - Python] 150368 - 이모티콘 할인행사

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 문제를 보고 어떤 알고리즘을 써야 할지 좀 고민을 했다. 결론적으로 BF를 사용했는데, 이유는 최대 유저는 100명, 최대 이모티콘은 7개, 할인율은 4개 이므로 약 160만이기 때문이다. 따라서 완전 탐색을 하기로 결정했고, itertools.product를 사용해서 해결했다. 2. 코드 # 할인율이 증가 -> 구매 인원 증가 -> 구매 비용 증가 -> 서비스 ..

[프로그래머스 - Python] 138476 - 귤 고르기

0. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 방법 당연하게도 서로 다른 종류의 수가 가장 적게 박스에 넣는 방법은 같은 종류를 최대한 많이 넣는 방법이다. 그러면 중복되는 귤의 개수를 세야 하는데, 이를 위해서 Counter를 사용했다. Counter를 정렬하고, 반복문을 사용해서 박스에 빈 공간이 없도록 채워주면 된다. 2. 코드 from collections import Counter def solution(..

[백준 - Python] 2638 - 치즈

0. 문제 링크 https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 1. 풀이 방법 문제에서는 맨 가장자리엔 치즈가 없다라고 되어있다. 따라서 BFS의 시작은 맨 가장자리인 [0][0]에서 시작한다. 치즈와 인접한 공기를 체크하기 위해 adjCheck를 사용했다. 해당 리스트는 치즈와 인접한 공기의 개수를 체크한다. 공기의 중복 방문 처리를 위하여 airCheck를 사용했다. 해당 리스트는 공기가 이미 방문한 곳을 처리한다. 결론적으로..

[백준 - Python] 3190 - 뱀

0. 문제 링크 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 1. 풀이 방법 나는 맵에다가 직접 뱀의 몸을 그려서 해결하였다. 사과가 있는 곳은 0, 뱀이 있는 곳은 1, 빈 공간은 -1로 처리하였다. dict를 사용해서 특정 시간의 뱀의 위치 전환을 표시했다. -> 0~3까지의 인덱스로 관리하였음. R이면 인덱스 += 1 뱀의 머리가 방향을 전환했다 하더라도, 꼬리는 나중에 전환하므로, 꼬리의 방향 전환을 위한 tailMove를 추가로 생성해 준..

[데이터베이스] 데이터베이스의 장점

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.10 - [Computer Science/데이터 베이스] - [데이터베이스] 데이터베이스의 특징 [데이터베이스] 데이터베이스의 특징 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.09 - [Computer Science/데이터 베이스] - [데이터베이스] 데이터베이스의 정의 [데이터베이스] 데이터베이스의 정의 1. 데이터베이스(Dababase)란? 데이 hi-guten-tag.tistory.com 1. DBMS의 장점 해당 글은 DBMS의 사용에서 얻는 장점과 DBMS가 가져야 할 기능에 대해 설명합니다. Controlling Rebundancy 동일한 정보를 여러 번 저장하는 Rebundancy는 많은 문제를 가집니다. 이상적으로 하나..

[데이터베이스] 데이터베이스의 특징

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.09 - [Computer Science/데이터 베이스] - [데이터베이스] 데이터베이스의 정의 [데이터베이스] 데이터베이스의 정의 1. 데이터베이스(Dababase)란? 데이터베이스는 서로 연관이 있는 데이터들의 모임입니다. 데이터는 알려진 사실, 즉 FACT로서 함축적인 의미를 가지고, 기록될 수 있는 것을 말합니다. 따라서 데이터 hi-guten-tag.tistory.com 1. 데이터베이스의 특징 데이터베이스 방식에는 단일 저장소에 데이터가 저장되고, 여러 사용자에 의해 Query, Transaction, Application을 통해 이 데이터를 공유합니다. 위의 방식을 위해 데이터베이스에는 여러 가지 특성이 있습니다. 해당 특성은 Sel..

[데이터베이스] 데이터베이스의 정의

1. 데이터베이스(Dababase)란? 데이터베이스는 서로 연관이 있는 데이터들의 모임입니다. 데이터는 알려진 사실, 즉 FACT로서 함축적인 의미를 가지고, 기록될 수 있는 것을 말합니다. 따라서 데이터베이스는 데이터가 생성되는 원천을 가지며, 실세계의 사건들과 상호작용을 가지고, 사용자를 가집니다. 2. 데이터베이스 관리 시스템(DBMS : Database Management System) 우리는 위에서 데이터베이스가 무엇인지에 대해 알았습니다. 결국 데이터베이스는 연관이 있는 데이터들의 모임에 불과합니다. 그렇다면 누군가는 이 데이터베이스를 컨트롤할 수 있어야 하고, 우리는 이것을 DBMS라고 부릅니다. DBMS는 사용자가 데이터베이스를 생성하고 관리할 수 있도록 하는 소프트웨어 패키지/시스템입니다..

[비디오 코덱] YCbCr 컬러 공간과 크로마 서브샘플링

0. 들어가기에 앞서 비디오 코덱의 입/출력으로 사용되는 YCbCr 영상에 관한 글입니다. 자세한 변환 방식은 작성하지 않았으며, 필요시 나무위키 등을 참고하시길 바랍니다. 해당 글에서는 YCbCr의 개요와 크로마 서브샘플링에 대해 다룹니다. 1. RGB 컬러 공간 우리에게 익숙한 RGB 컬러 공간은 RED, GREEN, BLUE로 이루어져 있다. 일반적으로 각 컬러 공간을 위해 8비트를 할당하여, 각 컬러 공간마다 256개의 단계를 구분할 수 있다. 따라서 RGB 픽셀 하나를 표현하기 위한 총 비트는 24비트이다. 중요한 점은 컬러 공간을 표현하기 위한 비트 수가 늘어날수록 밝기 값을 더 세밀하게 표현할 수 있다. 2. YCbCr 컬러 공간 일반적으로 YUV와 많이 혼용되지만, YUV는 아날로그 텔레비..

[백준 - Python] 2637 - 장난감 조립

0. 문제 링크 https://www.acmicpc.net/problem/2637 2637번: 장난감 조립 첫째 줄에는 자연수 N(3 ≤ N ≤ 100)이 주어지는데, 1부터 N-1까지는 기본 부품이나 중간 부품의 번호를 나타내고, N은 완제품의 번호를 나타낸다. 그리고 그 다음 줄에는 자연수 M(3 ≤ M ≤ 100)이 주 www.acmicpc.net 1. 풀이 방법 DP를 이용해서 풀었다. 장난감은 중간 부품, 기본 부품 들로 만들 수 있는데, 우선 기본 부품으로 만들 수 있으면 기본 부품으로 만든다. 장난감을 만들 수 있는 중간 부품 또한 어떤 중간 부품이 필요할 수 있다. 따라서 재귀를 통해 중간 부품을 만들 수 있는 기본 부품들을 구한다. 이런 식으로 재귀를 통해 장난감까지 올라가면, 장난감을 ..