분류 전체보기(98)
-
[Python - 백준 2606] 바이러스
2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 문제 설명 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번..
2021.01.12 -
Transaction Isolation (트랜잭션의 격리성)
저번 글에서 트랜잭션의 ACID 특성에 대해 잠깐 언급했던 적이 있는데요. 오늘은 트랜잭션의 ACID 중 I(Isolation)인 격리성의 격리 수준에 대한 글을 포스팅하고자 합니다. Docker와 MySQL을 이용한 트랜잭션 rollback / commit 실습은 아래 글을 참고해주세요 : ) [Docker/MySQL] 트랜잭션(Transaction) 트랜 잭션이란(Transaction) ?! 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업 / 한꺼번에 수행되어야할 일련의 작업 연산을 의미한다. 여러 줄의 SQL 쿼리를 실행할 yunaaaas.tistory.com Isolation Level (격리 수준) 이란?! 멀티 쓰레드 / 트랜잭션이 동시에 동일한 테이블 / 레코드에 접..
2021.01.10 -
[Python - 프로그래머스 Level2] 더 맵게
코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다...
2021.01.10 -
[Python 자료구조] Heap (힙)
파이썬에서의 Heap ?! Python에서의 Heap은 heapq 모듈과 Queue 모듈의 PriorityQueue 클래스를 통해 heapq를 제공합니다. 단, MinHeap으로 구현되어있어 가장 앞에 있는 원소가 가장 작은 원소가 됩니다. heapq 와 PriorityQueue 의 공통점과 차이점 공통점은 둘다 MinHeap으로 구현되어 있다는 점입니다. 즉 가장 앞에 있는 원소가 가장 작은 원소 입니다. 차이점은 PriorityQueue는 클래스이고, heapq는 모듈이라는 점입니다. 힙에 데이터를 넣으려면 !? PriorityQueue는 객체를 생성 후 메소드를 호출해야한다. heapq는 객체를 생성하지 않고 heapify(리스트 객체)처럼 함수를 호출하여 사용한다. Heap을 언제 사용하면 좋을까..
2021.01.09 -
[Python - 프로그래머스 Level2] 기능 개발
코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배..
2021.01.08 -
[Python - 백준 1966] 프린터 큐
1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 설명 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인..
2021.01.08