구름톤 챌린지 4주 차 학습 일기(Day 02)
·
알고리즘/구름톤
문제 플레이어는 1번부터 N번까지의 번호가 붙은 N개의 도시와 M개의 도로가 있는 나라에 살고 있다. 각 도로는 서로 다른 두 도시를 양방향으로 연결하고 있고, 주어진 도로만을 이용해 임의의 두 도시 사이를 이동하는 것이 가능하다. 플레이어는 차를 타고 S번 도시에서 E번 도시로 이동하려고 한다. 플레이어가 두 도시 사이를 이동할 때는 항상 가장 작은 수의 도시를 거치는 경로를 따라 이동한다. 예를 들어 아래 그림과 같이 도시와 도로가 주어지고, 플레이어가 1번 도시에서 4번 도시로 이동하려고 할 때는 항상 1 → 3 → 4의 경로를 따라 이동한다. 이 경우에는 출발 도시와 도착 도시를 포함해 총 세 개의 도시를 거쳐 이동할 수 있다. 1 → 5 → 2 → 4의 경로로 이동하는 것은 출발 도시와 도착 도..
구름톤 챌린지 4주 차 학습 일기(Day 01)
·
알고리즘/구름톤
문제 이 세상에는 수많은 컴퓨터들이 통신망을 통해 서로 연결되어 정보를 교류하고 있다. 오늘 플레이어는 이 거대한 통신망 중 한 구역을 조사하고자 한다. 플레이어가 조사할 구역에는 N개의 컴퓨터가 있고, M개의 통신 회선이 있다. 각 컴퓨터는 1번부터 N번까지 번호가 붙어 있고, 통신 회선은 서로 다른 두 컴퓨터를 양방향으로 연결하고 있다. 컴퓨터들은 연결 여부에 따라 여러 개의 컴포넌트로 나뉜다. 어떤 두 컴퓨터가 통신 회선만을 이용해서 연결되어 있다면 두 컴퓨터는 같은 컴포넌트에 속한다. 플레이어는 여러 개의 컴포넌트 중, 가장 밀도가 높은 컴포넌트를 조사하려고 한다. 컴포넌트의 밀도는 그 컴포넌트에 포함된 통신 회선의 개수를 컴퓨터의 수로 나눈 값이다. 주어진 통신 구역을 분석해서, 가장 밀도가 높..
트랜잭션의 격리수준(Isolation level)
·
운영체제
저번 DeadLock 과 Redis 대기열(1) 포스팅에서 DeadLock 해결법에 여러가지가 있다고 한 것중에 트랜잭션의 격리 수준을 조절하는 방법이 있다고 했는데, 이 때 트래잭션의 격리 수준에 대해서 알아보도록 하겠습니다. 트랜잭션 격리수준(isolation level)이란 동시에 여러 트랜잭션이 처리될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것이다. 또한, 데이터베이스 관리 시스템에서 여러 개의 동시 실행되는 트랜잭션들 간에 어떻게 데이터의 일관성과 격리를 유지할지를 정의하는 개념입니다. 격리 수준은 아래와 같이 4가지로 나뉩니다. 1.Read Uncommitted(레벨 0) 가장 낮은 격리 수준이며, 트랜잭션에서 변경된 내용이 커밋되지 않더라도 다른 트랜잭션에서 해당 내용을 읽..
DeadLock과 Redis 대기열 사용하기 - (2)
·
운영체제
앞서 1번 포스팅에서는 DeadLock에 대해서 알아봤습니다. 이번에는 Redis가 무엇인지 그리고 Redis Cluster, Replication, 대기열에 대해서 알아보도록 하겠습니다. 🧐 Redis Redis(Remote Dictionary Storage, 레디스)는 모든 데이터를 메모리에 저장하고 조회하는 인메모리 데이터베이스, 메모리 기반의 key-value 구조의 데이터 관리 시스템이다. Redis는 인메모리 데이터 스토어로서 매우 빠른 데이터 액세스와 처리를 제공하는 오픈 소스 데이터베이스 시스템입니다. 주로 캐싱, 세션 관리, 메시지 브로커 등 다양한 용도로 사용됩니다. Redis의 다양한 특징들 1. In-Memory 데이터 저장 데이터를 메모리에 저장하여 매우 빠른 읽기 및 쓰기 작업을..
DeadLock과 Redis 대기열 사용하기 - (1)
·
운영체제
이번에는 저번 구글 I/O Extended 2023 백엔드에서 들었던 GDG Incheon 백엔드 양일표 개발자님께서 강연해주셨던 DeadLock과 Redis 대기열 사용하기에서 새로 알게 된 내용과 깨달은 점을 정리해보려고합니다. 🧐 DeadLock 우선 DeadLock이란 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황을 일컫습니다. 이 때 DeadLock에 대한 해결법이 여러가지가 있는데 강연 중 소개해주신 해결법들은 트랜잭션의 크기, 방향, Lock, 격리 수준, 쿼리 튜닝, @Retryable 등과 같은 요소들을 고려하는 방법입니다. 1. 트랜잭션 크기 조절 트랜잭션 분할: 큰 트랜잭션을 작은 단위로 분할하여 실행하면, 더 적은 자원을 점유하므..
구름톤 챌린지 3주 차 학습 일기(Day 02)
·
알고리즘/구름톤
문제 구름 심시티를 하고 있는 플레이어는 한 변의 길이가 N인 정사각형 모양의 마을 M을 만들고 있다. r번째 행, c번째 열에 해당하는 칸에는 숫자 M(r,c)가 적혀 있다. M(r,c)는 0또는 1중 하나이며, 각 숫자가 의미하는 바는 아래와 같다. - 0이면 아무것도 없는 칸이다. - 1이면 집이 있는 칸이다. 마을에 있는 집에 전력을 공급하기 위해선 그 집에 발전기를 설치하거나, 상하좌우로 인접한 집 중 하나가 전력을 공급받고 있으면 된다. 플레이어가 모든 집에 전력을 공급하기 위해서 설치해야 할 발전기의 최소 개수를 구해보자. 코드 from sys import stdin as s from collections import deque def bfs(si,sj): global count v[si][..
[TIL]23.08.26(토) - I/O Extended 2023 Incheon
·
TIL
8월 26일 토요일에 인천 스타트업파크에서 구글 IO에서 발표한 기술과 개발자들의 열정, 지식을 나누는 자리인 I/O Extended에 갔다왔습니다! 우선 세션은 Web, Backend, Flutter, Android, Machine Learning 등이 있었는데 저는 Backend분야에 관심이 있어 해당 강의를 들었어요. 위에는 백엔드 세션 시간표인데 각 교시마다 개발자분들이 나와서 주제와 관련된 내용을 강연해주시는 방식이었습니다. 여기서 들은 내용들 중에 저는 메세지 큐와 Redis, Feature Flag, 모놀리스 등등 인상 깊었던 주제들에 관해서 추후 알게 된 점을 포스팅할 예정입니다. 그리고 라인 개발자 분이신 김인제 개발자님이 강연해주신 이벤트 루프는 NETTY와 ARMERIA를 모르는 상태..
구름톤 챌린지 3주 차 학습 일기(Day 01)
·
알고리즘/구름톤
문제 구름-그라운드 게임에는 통증이라는 시스템이 있다. 통증 수치가 높다면 게임에서 승리하기 어려워지므로, 아이템을 적절히 사용해 통증 수치를 으로 유지하는 것이 중요하다. 게임 안에는 통증 수치를 감소시켜 주는 아이템이 종류가 있다. 아이템의 이름은 이고, 각 아이템을 사용 시 각각 만큼 통증 수치를 감소시켜 준다. 각 아이템은 원하는 만큼 획득할 수 있다. 플레이어는 적과의 전투에서 피해를 입어 현재 의 통증 수치를 가지고 있다. 플레이어가 통증 수치를 으로 줄이기 위해 필요한 아이템의 최소 개수를 구해보자. 단, 사용했을 때 통증 수치가 보다 작아지는 아이템은 사용할 수 없음에 유의하시오. 코드 from sys import stdin as s N = int(s.readline()) A, B = ma..
yunchan^.^
'분류 전체보기' 카테고리의 글 목록 (2 Page)