본문 바로가기

전체 글

(215)
MooTube - 15591[G5] 문제 https://www.acmicpc.net/problem/15591 15591번: MooTube (Silver) 농부 존은 1번 동영상과 2번 동영상이 USADO 3을 가지고, 2번 동영상과 3번 동영상이 USADO 2를 가지고, 2번 동영상과 4번 동영상이 USADO 4를 가진다고 했다. 이것에 기반해서 1번 동영상과 3번 동영상의 www.acmicpc.net 농부 존은 남는 시간에 MooTube라 불리는 동영상 공유 서비스를 만들었다. MooTube에서 농부 존의 소들은 재밌는 동영상들을 서로 공유할 수 있다. 소들은 MooTube에 1부터 N까지 번호가 붙여진 N (1 ≤ N ≤ 5,000)개의 동영상을 이미 올려 놓았다. 하지만, 존은 아직 어떻게 하면 소들이 그들이 좋아할 만한 새 동영상을..
경쟁적 전염 - 18405[G5] 문제 https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net NxN 크기의 시험관이 있다. 시험관은 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 바이러스가 존재할 수 있다. 모든 바이러스는 1번부터 K번까지의 바이러스 종류 중 하나에 속한다. 시험관에 존재하는 모든 바이러스는 1초마다 상, 하, 좌, 우의 방향으로 증식해 나간다. 단, 매 초마다 번호가 낮은 종류의 바이러스부터 먼저 증식한다. 또한 증식 과정에서 특..
[Elasticsearch] RDBMS에 비해 왜 빠를까? 역인덱싱에 대해 개요 NoSQL의 경우 일반적으로 RDBMS보다 빠르다고 하는데, 구체적으로 왜 그런지 조사해보았다. RDBMS(관계형 데이터베이스 관리 시스템)와 NoSQL(비관계형 데이터베이스)은 데이터를 저장하고 관리하는 방식에서 근본적인 차이가 있다. 아래와 같은 이유로 차이가 발생한다. 구조적 차이 SQL의 주요 초점은 데이터 중복을 줄이는 것. RDBMS의 경우 테이블 형식으로 데이터를 저장하며, 엄격한 스키마를 따른다. 데이터는 행과 열로 구성되며, SQL(Structured Query Language)을 사용하여 데이터를 조작한다. 이를 통해 데이터의 무결성과 일관성, 트랜잭션 등의 규칙을 엄격하게 지킬 수 있다. NoSQL은 반대로 유연하고 빠른 동적 스키마를 제공한다. NoSQL 데이터베이스는 비관계형..
토마토 - 7569[G5] 문제 https://www.acmicpc.net/problem/7569 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토에 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마..
첫 회의와 요구사항 명세 작성 회의 기록적인 첫 회의를 진행하게 되었다. 미국인 개발자분이셨기에, 정말 손짓 발짓(그리고 콩글리시..) 으로 회의를 진행했던 것 같다. 다행인 점은 개발자분이 그래도 한국어를 잘 하신다는 점이다. 모쪼록 이번 프로젝트에서는 Notion이 아닌 Jira Confluence를 사용하였는데, 이를 통해 현재 Jira Kanban 보드와 연동할 수 있을 것 같다. 새로운 기술을 학습하고 배우는 것은 정말 의미 있는 일이다. 확정한 기술 스택 언어 / Language Java 21 프레임워크 / Framework Spring Boot 3.2.0 종속성 및 작업 관리자 / Dependency and Task Manager Gradle 8.5 데이터베이스 / Database PostgreSQL 16 토큰 저장소 /..
URI/URL/URN, Restful 원칙 개요 기존 개념의 추가 정의 시간이다. 알고는 있었지만 명확하게 설명하지 못했던 내용들을 다시 복기하고, 정리하고자 한다. Restful을 설명하기 전에, 헷갈렸던 URI/URL부터 짚고 넘어가 보자. URI/URL/URN 1. URI (Uniform Resource Identifier) 정의: URI는 인터넷에서 자원을 식별하는 데 사용되는 문자열이다. '자원'은 웹 페이지, 문서, 이미지, 파일, 그리고 백엔드에서 자주 사용하는 API Endpoint 를 포함하는 개념이다. 기능: URI는 특정 자원을 식별하고, 해당 자원이 어떻게 접근될 수 있는지에 대한 정보를 제공한다. 종류: URI에는 두 가지 주요 형태가 있다. URL (Uniform Resource Locator) URN (Uniform R..
SOLID 5원칙에 대해 java에서 항상 나오던 기본 원칙 중 하나인 SOLID를 예시를 들어 설명하고자 한다. 개념 자체는 알고 있지만 구체적인 예시를 떠올려 보다 생각나 포스팅하였다. SRP(Single Responsibility Principle) : 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다는 원칙. 개인적으로 비교적 가장 쉬운 개념이라 생각이 든다. 객체지향적으로 만들어진 모든 Class들은 각각의 역할에 맞는 메서드, 변수, 책임 등을 가져야 한다. 로그인 클래스가 존재한다면 이 클래스는 로그인에 관련된 기능만을 가져야 한다. 수정, 삭제, 확장 역시도 로그인에 관련된 내용일 것이다. OCP(Open - Closed Principle) 개방 - 폐쇄 원칙 기능의 개방(확장)에는 열려 있고, 변경에는 닫혀..
6064 - 카잉 달력[S1] 문제 https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 최근에 ICPC 탐사대는 남아메리카의 잉카 제국이 놀라운 문명을 지닌 카잉 제국을 토대로 하여 세워졌다는 사실을 발견했다. 카잉 제국의 백성들은 특이한 달력을 사용한 것으로 알려져 있다. 그들은 M과 N보다 작거나 같은 두 개의 자연수 x, y를 가지고 각 년도를 와 같은 형식으로 표현하였다. 그들은 이 세상의 시초에 해당하는 첫 번째 해를 로 표현하고, 두 번째 해를 로 표현하였다. 의 다음 ..