목록전체 글 (50)
개발저장소
문제https://www.acmicpc.net/problem/18111 풀이마인크래프트의 땅 고르기 작업을 한다. 땅 고르기란, 범위 내의 블록 높이를 같은 상태로 만드는 작업이다.땅 고르기 범위는 N X M 크기이다.하나의 블록을 캐면 2초가 걸리고, 그 블록이 인벤토리에 저장된다.하나의 블록을 설치하면 1초가 걸리고, 인벤토리에서 꺼낸 블록을 사용한다. 인벤토리에 블록이 없다면 설치할 수 없다.땅의 높이는 최소 0, 최대 256이다. 블록은 최대 64,000,000개가 주어질 수 있고, 맵의 크기는 최대 500 X 500이다.맵 전체의 땅을 고르는데 걸리는 최소 시간을 구해야 한다. 만약 시간이 같다면 땅의 높이가 더 높은 경우를 출력한다. 주어진 맵의 크기가 크지 않아 브루트포스 알고리즘을 사용..
1. 데이터베이스(Database)데이터(data)와 베이스(base)의 합성어다. 그렇다면 데이터는 무엇일까? 데이터는 어떤 필요에 의해 수집했지만 아직 특정 목적을 위해 평가하거나 정제하지 않은 값이나 사실 또는 자료 자체를 의미한다. 이러한 데이터를 가공하여 가치있는 것으로 만든 것을 정보(Information)이라고 한다. 데이터베이스는 데이터를 효율적으로 관리, 검색하고 특정 목적을 위해 여러 사람이 공유하여 사용할 수 있는 구조화한 데이터 집합이다. 그리고 데이터베이스의 데이터 조작과 관리를 극대화한 시스템 소프트웨어를 DBMS(DataBase Management System)이라고 한다. 데이터베이스와 DBMS는 굳이 구분하지 않는 편이다. ※ 데이터의 종류구조적 데이터 (정형 데이터)비구조..
1. 동기화(Synchronized)동기화는 하나의 작업이 완전히 완료된 후 다른 작업을 수행하는 것을 말한다. 이와 반대로 비동기는 하나의 작업 명령 이후 완료 여부와 상관없이 바로 다른 작업 명령을 수행하는 것을 말한다. 동기화 방법은 메서드 동기화와 블록 동기화가 있다.메서드 동기화는 2개의 스레드가 동시에 메서드를 실행할 수 없다는 것, 블록 동기화는 2개의 스레드가 동시에 해당 블록을 실행할 수 없다는 것을 의미한다.하나의 스레드가 공유 객체를 사용할 때, 다른 스레드가 사용할 수 없도록 하는 것을 락(lock)이라고 표현한다. ※ 트랜잭션: 업무의 최소 단위 메서드 동기화동기화하고자 하는 메서드의 리턴 타입 앞에 synchronized 키워드를 넣는다.class MyData { int ..
스레드란?메모리가 CPU를 독립적으로 처리하는 하나의 최소 작업 단위를 말한다. CPU: 중앙 처리 장치라고도 하며, 연산을 수행함으로써 실제 프로그램을 실행하는 장치이다.하드디스크: 저장 매체로서 상대적으로 속도가 가장 낮다.메모리: CPU가 연산을 하기 위해 필요한 정보를 저장해두는 공간이다. 프로그램은 하드디스크에 저장된 파일들의 모임, 프로세스는 메모리에 로딩된 프로그램을 뜻한다.이때, 여러 프로그램이 메모리에 로딩되어 실행되는 것을 멀티 프로세스라고 한다. 마찬가지로 여러 스레드를 생성해 동시에 2개 이상의 스레드가 동작하는 것을 멀티 스레드라고 한다. 1. 스레드의 동시성과 병렬성동시성(Concurrency)처리해야할 작업의 수가 CPU 코어 수보다 많을 때를 말한다. CPU는 각 작업 스레..