분류 전체보기 2528

백준 2670번 연속부분최대곱

문제 링크입니다: https://www.acmicpc.net/problem/2670 그리디 하게 접근한 문제였습니다.구간을 점차 확장하면서, 현재 구간의 연속 부분곱보다 현재 구간의 끝에 위치한 숫자가 큰 경우, 구간의 시작을 초기화하는 방식으로 문제를 해결했습니다. 문제의 예제 입력을 예로 들자면 다음과 같습니다. 구간구간의 연속부분곱현재 구간의 끝에 위치한 숫자연속부분최대곱[0, 0]1.11.11.1[0, 1]0.770.71.1[0, 2]1.0011.31.1[2, 2]1.31.31.3[2, 3]1.170.91.3[2, 4]1.6381.41.638[2, 5]1.31040.81.638[2, 6]0.917280.71.638[2, 7]1.2841921.41.638[7, 7]1.41.41.638   개발환경:..

알고리즘/BOJ 2024.05.05

[Cloud] 클라우드 이해

서론사내 온라인 강의 내용을 정리한 글입니다.틀린 내용이 있을 수 있으니, 발견되면 댓글로 지적해 주시기 바랍니다! 1.  클라우드 개념최소한의 관리 노력이나 상호작용으로 신속하게 설정 가능한 컴퓨팅 리소스에 어디서든 액세스를 가능하게 하는 모델 1.1 클라우드 컴퓨팅의 특성광대역 네트워크 접근(Broad Network Access): 네트워크를 통해 폰, 태블릿, 노트북, 데스크톱과 같은 장치에서 언제 어디서나 클라우드 서비스에 접근할 수 있음빠른 탄력성(Rapid Elasticity): 다양한 사용자들에게 제공하는 용량을 최적화하면서 서비스 제공리소스 풀링(Resource Pooling): 리소스를 각각 사용자가 지속적으로 소유하거나 점유하지 않는 특성 (통합된 리소스를 공유하고 반납)요청에 의한 셀..

Cloud 2024.04.30

[Java] ThreadPoolExecutor

ThreadPoolExecutor는 ExecutorService를 구현한 클래스로서 매개변수를 통해 다양한 설정과 조정이 가능하며 사용자가 직접 컨트롤할 수 있는 쓰레드 풀입니다.기존의 Executors가 생성하는 ThreadPool은 옵션 세부 튜닝이 어려웠던 반면 ThreadPoolExecutor는 이를 보완함 ThreadPoolExecutor는 다양한 구성 옵션을 통해 동작을 조정할 수 있으며 주요 구성 요소는 다음과 같습니다.corePoolSizemaximumPoolSizekeepAliveTimeBlockingQueueRejectedExecutionHandlerThreadPoolExecutor Hook 1. corePoolSize & maximumPoolSizeThreadPoolExecutor는 ..

백준 1269번 대칭 차집합

문제 링크입니다: https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net set 자료구조를 적절히 사용하면 쉽게 풀 수 있는 문제였습니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2024.04.24

백준 7795번 먹을 것인가 먹힐 것인가

문제 링크입니다: https://www.acmicpc.net/problem/7795 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net lower_bound를 적절히 사용하면 쉽게 풀 수 있는 문제였습니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2024.04.24

[아이템 84] 프로그램의 동작을 쓰레드 스케줄러에 기대지 말라

1. 서론 여러 쓰레드가 실행 중일 경우 OS의 쓰레드 스케줄러가 어떤 쓰레드를 얼마나 오래 실행할지 결정 OS마다 구체적인 스케줄링 정책은 다를 수 있기 때문에 특정 정책에 의존해서는 안됨 정확성이나 성능이 쓰레드 스케줄러에 종속적인 프로그램이라면 타 플랫폼에 이식하기 어려움 2. 좋은 프로그램을 작성하기 위한 원칙 다음 원칙을 지키면 쓰레드 스케줄링 정책이 변경되어도 크게 영향받지 않습니다. 프로세서 수보다 실행 가능한 쓰레드의 평균 수가 지나치게 많아지지 않도록 설정 실행 준비가 된 쓰레드들은 맡은 작업을 완료할 때까지 계속 실행되어야 함 3. 실행 가능한 쓰레드 수를 적게 유지하기 위한 원칙 각 쓰레드가 작업을 완료한 뒤 다음 작업이 생길 때까지 대기하도록 하는 것이 중요 이는 ThreadPool..

JAVA/Effective Java 2024.04.22

백준 12094번 2048 (Hard)

문제 링크입니다: https://www.acmicpc.net/problem/12094 12094번: 2048 (Hard) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 백준 12100번 2048 (Easy)와 달리 N이 10이기 때문에 단순 백트래킹만으로는 TLE가 발생하는 문제였습니다. 따라서 적절한 가지치기가 필요했으며 가지치기하는 기준은 다음과 같습니다. 보드 위에 있는 전체 블록을 한 방향으로 이동시켰을 때 블록 상태가 변하는지 여부 현재까지 구한 블록의 최댓값보다 다음 보드 상태에서 기대할 수 있는 블록의 ..

알고리즘/BOJ 2024.04.21