전체 글

문제 출저 https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 문제 풀이 n * n 크기의 체스판이 주어집니다. k 개의 기물이 주어집니다. 기물은 행과 열 방향 정보가 주어집니다. 방향은 오른쪽, 왼쪽, 위쪽, 아래쪽 4방향 입니다. 체스판 기물들은 방향대로 움직입니다. 이 때, 기물들을 만나면 기물이 위로 올라타게 됩니다. 아래에 기물이 움직이면 그 기물 위에 있는 기물들도 같이 움직입니다. 체스판에는 흰색, 빨강, 파랑이 각각 숫자 0, ..
문제 출저 https://www.acmicpc.net/problem/2688 2688번: 줄어들지 않아 첫째 줄에 테스트 케이스의 개수 T(1
문제 출저 https://www.acmicpc.net/problem/8394 8394번: 악수 첫째 줄에 회의에 참석한 사람의 수 n (1 ≤ n ≤ 10,000,000)이 주어진다. www.acmicpc.net 문제 풀이 일렬로 n명의 사람이 있습니다. 양 옆에 있는 사람 중 한 사람만 악수가 가능합니다. 악수를 하는 총 방법의 수를 구해야 합니다. 사람의 수가 n으로 주어지는데 범위가 10,000,000 입니다. 큰 크기에 dp로 문제를 풀 생각을 했고 점화식을 찾았습니다. 사람이 추가될 때 경우의 수는 2개 입니다. 악수를 하거나 악수를 안하거나 2개입니다. 악수를 하지 않은 경우의 수는 옆에 사람이 악수를 한 상태, 악수를 안한 상태 모두 가능합니다. 악수를 한 경우의 수는 옆에 사람이 악수를 안..
· CS/DataBase
이번에는 DB DeadLock 교착 상태에 대해 정리하겠습니다. DB 데드락이란? DB 데드락이란 트랜잭션의 교착 상태입니다. 두 개 이상의 트랜잭션이 서로의 작업이 완료되기를 기다리면서 영원히 대기 상태에 빠지는 상황을 말합니다. 데드락은 동시에 여러 트랜잭션이 실행되는 다중 사용자 DB 시스템에서 자주 발생합니다. 데드락 발생 원인 데드락은 4가지 상황이 충족되면 발생합니다. 4가지 상황은 상호 배제, 소유와 대기, 비선점, 순환 대기 입니다. 하나씩 알아보겠습니다. 상호 배제(Mutual Exclusion) 각 트랜잭션 자원에 대해 베타적인 제어권을 가지고 있습니다. 베타적 제어권이란 한 트랜잭션이 자원을 독점하고 있어 다른 트랜잭션이 접근할 수 없는 것입니다. 소유와 대기(Hold and Wait..
문제 출저 https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 문제 풀이 구멍이 n개인 멀티탭이 주어집니다. k 번의 전기용품이 주어집니다. 전기용품은 자신의 차례일 때 멀티탭에 꼽혀야 합니다. 멀티탭에 콘센트를 뽑는 횟수의 최소값을 구해야 합니다. 그리디 방식으로 문제를 풀었습니다. 멀티탭이 비어있을 경우 전기용품을 꽂습니다. 멀티탭이 가득 차 있을 경우 2가지 로직을 수행합니다. 먼저, 멀티탭에 꽂혀있는 전기용품이 다음에 쓰일지를 확인합니다. ..
· CS/DataBase
이번에는 DB 이상 현상에 대해 정리해보겠습니다. DB 이상 현상이란? 이상 현상(Anomaly)란 현실 세계의 실제 값과 데이터베이스에 저장된 값이 일치하지 않는 문제입니다. 데이터를 부적절하게 저장하거나 관리할 때 발생하는 문제점들로 주로 정규화를 제대로 수행하지 않을 때 발생합니다. 정규화를 제대로 수행하지 않으면 중복이 발생하고 일관성과 무결성이 깨지기 때문입니다. (이상 현상은 정규화를 통해 해결할 수 있습니다.) 이상 현상은 삽입 이상, 갱신 이상, 삭제 이상 세 가지 유형이 존재합니다. DB에 데이터를 변경하는 작업에서 발생합니다. 아래는 설명을 도와주기 위한 예시 테이블입니다. 학번 학생 이름 강의코드 강의 이름 담당 교수 1 김길동 101 Spring 김일한 2 고길동 101 Spring..
문제 출저 https://www.acmicpc.net/problem/16434 16434번: 드래곤 앤 던전 첫 번째 줄에 방의 개수 N (1 ≤ N ≤ 123,456) 과 용사의 초기 공격력 HATK (1 ≤ HATK ≤ 1,000,000) 가 주어집니다. i+1번째 줄엔 i번째 방의 정보를 나타내는 세개의 정수 ti, ai, hi (ti ∈ {1, 2}, 1 www.acmicpc.net 문제 풀이 용사의 공격력이 주어집니다. 그리고 방의 정보가 주어집니다. 방에는 포션이 있을 수가 있고 몬스터가 있을 수 있습니다. 포션이 있으면 용사의 공격력과 체력이 올라갑니다. 이 때, 체력은 최대 체력을 넘을 수 없습니다. 몬스터가 있을 경우 몬스터와 전투를 합니다. 용사가 먼저 공격하면서 서로 공격을 주고 받습..
· CS/Spring
이번에는 Spring과 Spring Boot에 대해 정리하겠습니다. Spring Spring이란? Spring이란 Java 애플리케이션 개발을 도와주는 프레임워크 입니다. 좀 더 자세히 말하면 엔터프라이즈용 Java 애플리케이션 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 입니다. Spring 정의에 대해 좀 더 알아보겠습니다. 오픈소스 스프링은 모든 사용자에게 무료로 열려 있습니다. 어떤 개인 및 기업도 스프링을 사용하여 애플리케이션을 개발 할 수 있습니다. 스프링은 오픈소스로 누구나 이용 가능하지만 스프링소스(SpringSource)라는 IT기업이 관리하고 있습니다. 스프링 개발에는 한정적인 인원만 참여하고 있어서 오픈소스 프레임워크지만 안정적인 개발과 개선이 보장됩니다. 경량급 경량..
문제 출저 https://www.acmicpc.net/problem/15748 15748번: Rest Stops The first line of input contains four integers: $L$, $N$, $r_F$, and $r_B$. The next $N$ lines describe the rest stops. For each $i$ between $1$ and $N$, the $i+1$-st line contains two integers $x_i$ and $c_i$, describing the position of the $i$-th rest st www.acmicpc.net 문제 풀이 이번 문제는 영어라 구글 번역기와 블로그를 보고 문제를 파악했습니다. 문제에는 농부 존과 그의 친구 ..
· CS/DataBase
이번에는 가상 테이블인 View에 대해 정리해 보겠습니다. View란? View란 하나 이상의 테이블이나 뷰로 만들어지는 '가상 테이블' 입니다. View는 아래와 같은 쿼리로 생성할 수 있습니다. CREATE VIEW 뷰 이름 AS SELECT 컬럼명 FROM 테이블명 [WHERE 조건]; CREATE VIEW MEMBER_INFO AS SELECT NAME, EMAIL FROM MEMBER; 뷰는 하나의 SELECT 문과 같다고 생각할 수 있습니다. 원하는 필드를 선택할 수 있어 전체 데이터 중에서 보여주고 싶은 것만 보여줄 수 있습니다. 테이블은 디스크 공간이 할당되어 데이터를 저장하지만, 뷰는 데이터 딕셔너리 테이블에 뷰에 대한 정의만 저장하고 디스크에 공간이 할당되지 않습니다. 그래서 가상 테이..
· CS/Spring
이번에는 Spring MVC에서 중요한 역할을 하는 Dispatcher Servlet에 대해 정리해보겠습니다. Dispatcher Servlet 이란? 디스패쳐 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 전달해주는 프론트 컨트롤러(Front Controller)입니다. Dispatcher Servlet 특징 프론트 컨트롤러 패턴 : 모든 요청을 가장 먼저 받아 공통적인 작업을 처리한 후에 적절한 컨트롤러에게 위임합니다. 정적 자원과 동적 자원을 분할 처리 : 디스패처 서블릿에 요청이 들어오면 해당하는 컨트롤러를 찾는다. 해당하는 컨트롤러가 없는 경우 정적 자원을 탐색한다. 이를 통해 효율적인 리소스 관리가 가능해집니다. Dispatcher Servlet 장점 디스..
문제 출저 https://www.acmicpc.net/problem/1245 1245번: 농장 관리 첫째 줄에 정수 N(1 < N ≤ 100), M(1 < M ≤ 70)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄마다 격자의 높이를 의미하는 M개의 정수가 입력된다. 격자의 높이는 500보다 작거나 같은 음이 아닌 정수 www.acmicpc.net 문제 풀이 2차원 int 배열이 주어지고 산봉우리의 갯수를 구하는 문제입니다. 산봉우리란 같은 높이를 잇고 각각의 지점이 8방향 지점보다 크거나 같은 지점들입니다. BFS를 통해서 문제를 풀었습니다. 등고선 개념을 생각했습니다. 8방향으로 탐색하면서 같은 크기의 지점들을 이었습니다. 그리고 이 지점들 하나하나 8방향을 탐색해서 높은 게 하나라도 있다면 fa..
너지살
너지살개발자