분류 전체보기
-
백준( BOJ ) 16236번 아기 상어알고리즘 풀이/백준(Boj) 2020. 2. 24. 16:22
문제 : https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크 www.acmicpc.net 풀이 : 9의 위치에서 BFS를 통해 갈 수 있는 위치를 파악하고 v 배열에 담은 후에 v 배열은 d, y, x 순이므로 ..
-
템플릿 메소드 패턴JAVA/Java Design Patterns 2020. 2. 22. 18:26
Template Method 패턴 개념 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화 해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴 즉, 전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화 할 때 유용하다. 다른 관점에서 보면 동일한 기능을 상위 클래스에서 정의하면서 확장/변화가 필요한 부분만 서브 클래스에서 구현할 수 있도록 한다. 예를 들어, 전체적인 알고리즘은 상위 클래스에서 구현하면서 다른 부분은 하위 클래스에서 구현할 수 있도록 함으로써 전체적인 알고리즘 코드를 재사용하는 데 유용하도록 한다 조건 클래스는 추상(abstract)로 만든다. 단계를 진행하는 메소드는 수정이 불가능하도록 final 키워드를 추가한다. ..
-
백준 BOJ(1062) 가르침알고리즘 풀이/백준(Boj) 2020. 2. 22. 18:18
문제 : https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문자로만 이루어져 있고, 길이가 8보다 크거나 같고, 15보다 작거나 같다. 모든 단어는 중복되지 않는다. www.acmicpc.net 풀이 : anta와 tica는 무조건 들어가야 하므로 최소 k가 5개는 필요하다 5개가 되지 않는다면 0을 리턴하자 5개가 넘는다면 a n t i c는 true 처리를 해주고 나머지 21개의 알파벳 중 k-5개를 고른다. k-5개를 골랐다면 check만을 통해 단어를 만들 수 있..
-
트랜잭션 ( Transaction ) 이란DB/DB 개념 정리 2020. 2. 22. 18:08
트랜잭션(Transaction) 이란 -데이터베이스의 상태를 변환시키는 하나의 논리적인 작업 단위를 구성하는 연산들의 집합이다. -예를 들어, A 계좌에서 B계좌로 일정 금액을 이체한다고 가정하자. A 계좌의 잔액을 확인한다. A 계좌의 금액에서 이체할 금액을 빼고 다시 저장한다. B계좌의 잔액을 확인한다. B계좌의 금액에서 이체할 금액을 더하고 다시 저장한다. 이러한 과정들이 모두 합쳐져 계좌이체라는 하나의 작업 단위를 구성한다. 하나의 트랜잭션은 Commit 되거나 RollBack 된다. Commit 연산 한개의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝나 데이터베이스가 다시 일관된 상태에 있을 때, 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산이다. Roll..
-
JVM (Java Virtual Machine) 의 구조JAVA/Java 2020. 2. 22. 17:43
JDK와 JRE 란? JVM (Java Virtual Machine) 자바 가상 머신으로 자바 바이트 코드(. class 파일)를 OS에 특화된 코드로 변환(인터프리터와 JIT 컴파일러)하여 실행한다. JRE (Java Runtime Environment): JVM + 라이브러리 자바 애플리케이션을 실행할 수 있도록 구성된 배포판 JVM과 핵심 라이브러리 및 자바 런타임 환경에서 사용하는 프로퍼티 세팅이나 리소스 파일을 가지고 있다 개발 관련 도구는 포함하지 않는다. (그건 JDK에서 제공) JDK (Java Development Kit): JRE + 개발 툴 JRE + 개발에 필요할 툴 바이트코드란? 바이트코드(Bytecode, portable code, p-code)는 특정 하드웨어가 아닌 가상 컴퓨..
-
IOC ( Inversion Of Control ) 와 IOC 컨테이너Spring/Spring 2020. 2. 22. 17:34
IoC(Inversion of Control, 제어의 역전)란 기존에 자바 기반으로 애플리케이션을 개발할 때 자바 객체를 생성하고 서로 간의 의존관계를 연결시키는 작업에 대한 제어권은 보통 개발되는 애플리케이션에 있었다. 그러나 Servlet 등을 사용하는 경우 Servlet Container에게 제어권이 넘 어가서 객체의 생명주기(라이프사이클)을 Container들이 전담하게 된다. 이처럼 IoC에서 이야기하는 제어권의 역전이 란 객체의 생성에서부터 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것(IoC 컨테이너)을 의미 한다. 스프링에서의 IOC 스프링 프레임워크의 가장 큰 장점으로 IoC 컨테이너 기능이 부각되어 있으나, IoC 기능은 스프링 프레임워크가 탄생하 기 훨씬 이전부터 사용되..
-
백준(BOJ) 17406번 배열 돌리기 4알고리즘 풀이/백준(Boj) 2020. 2. 22. 17:06
문제 : https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 값은 4이다. 1 2 3 2 1 1 4 5 6 배열은 회전 연산을 수행할 수 있다. 회전 연산은 세 정수 (r, c, s)로 이루어져 있고, 가장 왼쪽 윗 칸이 (r-s, c-s), 가장 오른쪽 아랫 칸이 (r+s, c+s)인 정사각형을 시계 www.acmicpc.net 풀이 : 순서는 임의로 정해도 된다. 는 글을 놓쳐서 몇 번 실패하였던 문제이다. order는 0,1,2,3 .. k..
-
백준(BOJ) 17281번 ⚾알고리즘 풀이/백준(Boj) 2020. 2. 20. 02:29
문제 : https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종료되고, 두 팀이 공격과 수비를 서로 바꾼다. 두 팀은 경기가 시작하기 전까지 타순(타자가 타석에 서는 순서)을 정해야 하고, 경기 중에는 타순을 변경할 수 없다. 9번 타자까지 공을 쳤는데 3아웃이 발생하지 않은 상태면 이닝은 끝나지 않고, 1번 타자가 다시 타석에 www.acmicpc.net 풀이 : 첫 주자인 0번은 무조건 4번째에 들어가기 때문에 1~8까지 next_permutation을 통해 순서를 돌려주고 solv..