danbibibi
article thumbnail
BOJ 1194번: 달이 차오른다, 가자.
문제 풀이/백준 2023. 3. 31. 16:00

문제 문제 바로가기> BOJ 1194번: 달이 차오른다, 가자. 1194번: 달이 차오른다, 가자. 첫째 줄에 미로의 세로 크기 N과 가로 크기 M이 주어진다. (1 ≤ N, M ≤ 50) 둘째 줄부터 N개의 줄에 미로의 모양이 주어진다. 같은 타입의 열쇠가 여러 개 있을 수 있고, 문도 마찬가지이다. 그리고, www.acmicpc.net 풀이 미로를 탈출하는데 드는 이동 횟수의 최솟값을 찾는 것이므로, BFS 키를 가진 상태(2^6 경우 존재)에서의 방문 여부를 체크해줘야 하므로, 비트마스킹을 이용했다. import java.io.*; import java.util.*; public class Main { static final int[] dy = {-1,1,0,0}; static final int[]..

article thumbnail
BOJ 17836번: 공주님을 구해라!
문제 풀이/백준 2023. 3. 30. 22:28

문제 문제 바로가기> BOJ 17836번: 공주님을 구해라! 17836번: 공주님을 구해라! 용사는 마왕이 숨겨놓은 공주님을 구하기 위해 (N, M) 크기의 성 입구 (1,1)으로 들어왔다. 마왕은 용사가 공주를 찾지 못하도록 성의 여러 군데 마법 벽을 세워놓았다. 용사는 현재의 가지고 있는 www.acmicpc.net 풀이 한 칸을 이동하는데, 1 시간이라는 동일한 가중치가 필요하고, 최단 시간을 찾는 문제이기 때문에 BFS 탐색을 이용한다! 이 때 그람을 획득한 경우와 아직 그람을 획득하지 못한 경우가 있으므로 두 가지 경우에 대해 체크해주기 위해 3차원 cost 배열에 값을 저장해준다. cost[y][x][0] : (y,x)에 도착하는 데 걸린 시간, 그람을 획득하지 못한 상태 cost[y][x][..

article thumbnail
데이터베이스 정규화(Normalization)
CS/데이터베이스 2023. 3. 30. 10:58

정규화란? 관계형 데이터베이스의 설계에서 중복을 최소화하도록 데이터를 구조화하는 프로세스 = 속성들 간의 종속 관계를 분석하여 여러개의 관계(Relation)로 데이터를 분해하는 것 무결성(Integrity)을 유지할 수 있으며, DB 저장용량을 줄일 수 있음 정규화 목표 불필요한 중복 최소화 각종 이상 현상 방지 다양한 관점에서 Query 지원 무결성 제약조건 시행 간소화 데이터 베이스 구조 확장시 재디자인 최소화 💡 이상 현상 (Anomaly) 이란? : 테이블 내 불필요한 데이터 중복으로 인해, 테이블을 조작할 때 발생되는 데이터 불일치 현상 ▶ 삽입 이상 (insertion anomalies) : 원치 않는 데이터가 삽입되거나, 삽입하는데 자료가 부족해 삽입이 되지 않아 발생하는 문제점 ▶ 삭제 ..

article thumbnail
BOJ 1600번: 말이 되고픈 원숭이
문제 풀이/백준 2023. 3. 29. 17:50

문제 문제 바로가기> BOJ 1600번: 말이 되고픈 원숭이 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 풀이 bfs + 3차원 배열을 이용해서 풀었다. visitCnt[y][x][k] : 말처럼 이동할 수 있는 기회가 k번 남았을 때, (y, x) 에 도달하는 최소 횟수 import java.io.*; import java.util.*; public class Main { static final int dy[] = {-1, 1, 0, 0, -2, -2, -1, -1, 1, 1, 2, 2}..

article thumbnail
BOJ 16724번: 피리 부는 사나이
문제 풀이/백준 2023. 3. 29. 15:26

문제 문제 바로가기> BOJ 16724번: 피리 부는 사나이 16724번: 피리 부는 사나이 첫 번째 줄에 지도의 행의 수를 나타내는 N(1 ≤ N ≤ 1,000)과 지도의 열의 수를 나타내는 M(1 ≤ M ≤ 1,000)이 주어진다. 두 번째 줄부터 N개의 줄에 지도의 정보를 나타내는 길이가 M인 문자열이 주 www.acmicpc.net 풀이 dfs 탐색을 통해 이동을 진행하다가, 해당 턴에서 이미 방문했던 곳으로 돌아오는 경우, SAFE ZONE이 필요한 것이므로 ans를 1증가해주었다! #include #include #define MAX 1001 using namespace std; int N, M, ans=0; char map[MAX][MAX]; int visited[MAX][MAX]; void..

article thumbnail
BOJ 2193번: 이친수
문제 풀이/백준 2023. 3. 28. 14:13

문제 문제 바로가기> BOJ 2193번: 이친수 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 풀이 dp[N][0] : N자리 수 이찬 수 중 0으로 끝나는 수 dp[N][1] : N자리 수 이찬 수 중 1로 끝나는 수 0으로 끝나는 수는 0과 1이 뒤에 붙을 수 있다. 1로 끝나는 수는 0이 뒤에 붙을 수 있다. 이 점을 이용해서 dp로 문제를 해결했다! #include #define MAX 91 using namespace std; long long dp[MAX][2]; int main() {..

article thumbnail
Javax.servlet.jsp.PageContext cannot be resolved to a type
오류 해결 2023. 3. 26. 13:25

💡 발생 이유 : 해당 프로젝트에서 서버 환경을 잡아주지 않았기 때문! 💡 해결 방법 Project 우클릭 → Build Path → Configure Build Path... 클릭 Add Libray → Server Runtime → tomcat 설정!! Finish → Apply and close

article thumbnail
Maven 이란?
WEB/기타 2023. 3. 25. 23:46

Maven : 자바용 프로젝트 관리 도구 (자바 프로젝트들을 위한 빌드 자동화 도구) 💡 빌드란? 프로젝트를 위해 작성한 Java코드나 여러 자원들(.xml, .jar, .properties)를 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물 Maven 장점 라이브러리 관리를 용이하게 해줌 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 네트워크를 통해서 자동으로 다운받아 줌 프로젝트의 작성부터 컴파일, 테스트 등 프로젝트 라이프사이클에 포함되는 각 테스트를 지원 Maven LifeCycle clean, build, site 세 가지 Lifecycle을 제공 모든 빌드 단위에 대한 Lifecycle이 예약되어 있어서 개발자가 임의로 변경 불가 각 Lifecy..

article thumbnail
JDBC를 이용한 DB 연결 (MySQL)
WEB/back-end 2023. 3. 24. 02:24

JDBC (Java DataBase Connectivity) 자바 언어로 데이터베이스 프로그래밍을 하기 위한 라이브러리 자바 프로그래밍 언어로 만들어진 클래스와 인터페이스로 이루어진 API로서 ANSI SQL 지원 SQL문을 실행할 수 있는 함수 호출 인터페이스 JDBC 특징 DBMS 종류에 독립적인 자바 프로그래밍 가능 DB가 달라지더라도 동일한 API를 사용하게 해줌 (드라이버 및 URL만 수정하면 가능) 자바가 가지는 플랫폼에 독립적이라는 특성과 DBMS에 독립적인 특성을 가짐 JDBC 기능 데이터베이스에 연결 설정 SQL 문장을 DBMS에 전송 SQL 문장 전송 후 결과를 처리할 수 있음 JDBC API: java.sql package Driver (interface) 드라이버에 대한 정보를 가지..

article thumbnail
BOJ 17404번: RGB거리 2
문제 풀이/백준 2023. 3. 23. 23:06

문제 문제 바로가기> BOJ 17404번: RGB거리 17404번: RGB거리 2 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 풀이 BOJ 1149번: RGB거리 에 1번집과 N번 집이 연결되어 있다는 조건이 조금 더 붙었다. 따라서 1번 집의 색상을 고정하고, 나머지 집들을 칠하는 방식으로 문제를 해결했다. 1번 집의 색상을 고정한 이유는 마지막 N번 집을 같은 색상으로 칠해주지 않기 위해서다!! (조건문을 통해 처리) #include #define MAX 1002 using namespace std; i..

article thumbnail
BOJ 1766번: 문제집
문제 풀이/백준 2023. 3. 23. 12:49

문제 문제 바로가기> BOJ 1766번: 문제집 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net 풀이 세가지 조건에 따라 문제를 풀 순서를 출력해야한다. 1. N개의 문제는 모두 풀어야 한다. ⇒ 항상 문제를 모두 풀 수 있는 경우만 입력으로 주어진다고 했으니, 신경 쓸 필요 없다. 2. 먼저 푸는 것이 좋은 문제가 있는 문제는, 먼저 푸는 것이 좋은 문제를 반드시 먼저 풀어야 한다. ⇒ 위상 정렬을 이용해서, 정해진 순서를 만족시키도록 한다. 3. 가능하면 쉬운 문제부터 풀어야..

article thumbnail
BOJ 1726번: 로봇
문제 풀이/백준 2023. 3. 23. 03:08

문제 문제 바로가기> BOJ 1726번: 로봇 1726번: 로봇 많은 공장에서 로봇이 이용되고 있다. 우리 월드 공장의 로봇은 바라보는 방향으로 궤도를 따라 움직이며, 움직이는 방향은 동, 서, 남, 북 가운데 하나이다. 로봇의 이동을 제어하는 명령어는 www.acmicpc.net 풀이 BFS + Priority Queue를 이용해서 문제를 해결했다. 문제 해결에 있어 중요한 점을 몇가지 적어보겠다! 1. 로봇이 어떤 좌표(y, x)에서 방향 d를 바라보고 있는 경우는 유일하다. 즉, 한번만 처리해주고, 다시 처리해줄 필요가 없다. 어떻게 왔든, 그 이후로 펼쳐질 결과는 동일할 것이기 때문! 이를 위해 3차원 visited 배열을 이용해주었다. 즉, visited[y][x][로봇이 바라보고 있는 방향]이..

article thumbnail
BOJ 23309번: 철도 공사
문제 풀이/백준 2023. 3. 22. 21:47

문제 문제 바로가기> BOJ 23309번: 철도 공사 23309번: 철도 공사 첫 번째 줄에 공사를 시작하기 이전에 있는 역의 개수를 나타내는 양의 정수 $N$과 공사 횟수를 나타내는 양의 정수 $M$이 주어진다. ($1 \le N \le 500\,000$, $1 \le M \le 1\,500\,000$) 두 번째 줄에는 공사 www.acmicpc.net 풀이 이중 연결 리스트 개념을 이용하되, 각 원소에 접근할 때 O(1)로 접근하기 위해 이전 역(prev)과 다음 역(next)을 가지는 벡터를 만들어 주었다. 그렇지 않고, 해당 역을 찾기 위해 또다시 탐색을 진행해야 한다면, 시간 초과가 발생하기 때문!! O(N*M),,, #include #include #define MAX 1000001 using..

article thumbnail
DAO, DTO, Entity 란?
WEB/back-end 2023. 3. 22. 01:47

DAO (Data Access Object) 실제로 DB에 접근하는 객체 (CRUD 기능 수행) DB에 접근하기 위한 로직 & 비즈니스 로직을 분리하기 위해 사용 DTO (Data Transfer Object) 계층 간 (Controller, View, Business Layer) 데이터 교환을 위한 Java Beans 로직을 가지지 않는 데이터 객체 ( getter, setter 메소드만 가진 클래스 ) VO (Value Object) : DTO와 유사하지만, read-only 특징을 가짐 (setter x) Entity 실제 데이터베이스 테이블과 1:1로 매핑되는 클래스 DB 테이블 내에 존재하는 컬럼만을 속성(필드)으로 가짐 Entity 클래스는 상속을 받거나 구현체여서는 안됨 💡 CRUD 란? :..

article thumbnail
BOJ 12852번: 1로 만들기 2
문제 풀이/백준 2023. 3. 21. 20:54

문제 문제 바로가기> BOJ 12852번: 1로 만들기 2 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 풀이 처음엔, 아래와 같이 dp 배열을 구축한 후, 구축된 배열에서 역추적해가며 N을 1로 만드는 방법에 포함되어 있는 수를 출력해주었다. 이 때는 ,, dp[1] = 0을 1로 초기화 해줘서 앞에서 리턴하게 하고 암튼 그랬지만, 전반적인 역추적 아이디어는 아래와 같았다. 그런데 사실 dp 배열을 만드는 과정에서 배열을 하나 더 만들어서 그 이전 값을 저장하는 dp 배열을 만든다면??!! 더 편하게 "N을 1로 만드는 방법에 포함되어 있는 수"를 구할 수 있다!! dp 배열이 업데이트 됨에 따라 그 값을 담고 ..