내용 구성 싱글톤 패턴이란? 코드로 보는 싱글톤 패턴 멀티 스레드 환경에서의 문제점 안전하게 사용하는 싱글톤 패턴 참고 객체지향 디자인 패턴1 (알퍅한 코딩 사전, 객체지향 디자인패턴 1 - YouTube) [JAVA] 싱글톤 패턴 2부 - 멀티쓰레드 환경에서 안전하게 구현하기 (luminous13, [JAVA] 싱글톤 패턴 2부 - 멀티쓰레드 환경에서 안전하게 구현하기 (tistory.com)) 「면접을 위한 CS 전공지식 노트」 (주홍철 지음) 1. 싱글톤 패턴이란? 길동이는 로그인 기능이 있는 작은 홈페이지를 만들고 테스트를 하고 있다. 인덱스 페이지에서 다크 모드를 설정해본다. 정상적으로 검은색 배경으로 전환되었다. 그러나 로그인 페이지로 이동하니 홈페이지 배경이 밝은 하얀색이다! 다시 접속해본 ..
https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 1. 접근 방식 최소 힙을 사용하자. 카드 합체 놀이의 점수를 가장 작게 만드는 것이 놀이의 목표이다. x번 카드와 y번 카드를 고를 때, 그 두 장에 써진 수가 작을수록 그 둘의 합도 작아지기 때문에 모든 카드의 수를 더한 점수도 작아진다. 따라서 수가 가장 작은 카드를 2장 뽑기 위해 최소 힙을 사용한다. 문제 명세대로 구현하자. 문제에 카드 합체 놀이 과..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 접근 방식 heapq의 heappush 시 튜플을 활용하자. 튜플을 사용하면 튜플의 원소별로 오름차순 정렬된다. 그리고 튜플의 원소 개수는 2개 이상도 가능하다. 아래는 heappush에서 튜플로 오름차순 정렬 기준을 설정한 예시 코드이다. from heapq import heappush, heappop heap = [] heappush(heap, (1, 2, "AA")..
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 접근 방식 문제에서 최소 힙이라고 이야기하고 있으므로, heapq 모듈을 사용하였다. 2. 정답 코드 from heapq import heappush, heappop import sys input = sys.stdin.readline heap = [] count = int(input()) for _ in range(count) : n = int(input()) if not..
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 접근 방식 문제 자체가 최대 힙을 이야기하고 있다. heapq로 최대 힙을 구현하는 방법은 2가지가 있는데, 내가 작성한 방법이 속도가 더 빠르다. # 1 heappush(heap, (-n, n)) heappop(heap)[1] # 2 heappush(heap, -n) -heappop(heap) 처음에는 최대 힙을 만들기 위해 1번처럼 코드를 작성했더니, 실행 시간이 ..