보호되어 있는 글입니다.
분류 전체보기
1. JDBC 정의 JDBC 또는 Java Database Connectivity는 데이터베이스와 쿼리를 연결하고 실행하기 위한 Java API JDBC 의 클래스와 인터페이스를 사용하면, 유저가 작성한 요청(쿼리문)을 지정된 데이타베이스에 송신할 수 있다. Java 데이터베이스 연결 표준을 갖춘 언어를 제공한다. Java는 표준 인터페이스인 JDBC API를 제공한다. (즉, 어떤 DBMS를 사용하더라도 똑같은 방식으로 다룰 수 있음 =(데이터 베이스 종류에 상관없다.) 자바를 이용한 DB 접속과 SQL 문장 실행, 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약을 정의한다. 데이터베이스에 액세스하는 데 필요한 프로그램을 작성하는 데 사용된다. 1. JDBC 컴포넌트 JDBC에는..
문제 문제링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 규영이의 카드와 순서가 정해지고 인영이가 내는 순서에 따라 승패가 갈린다. 즉, 순열을 통해 인영이의 카드 순서의 경우의 수를 모두 구하고 승패 여부를 확인하면 된다. 순열을 구하는 방법은 대표적으로 두가지가 있는데 swap을 이용하여 순서를 구하거나 boolean 배열을 이용해 check하는 방법이다. 풀이1 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; publi..
문제 문제링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 구현 문제이다. 두 유저가 이동할 때 사용할 수 있는 충전기 범위에 있다면 충전할 수 있는데 시간이 전부 흐르고 나서 두 유저가 최대로 충전할 수 있는 충전량을 구하는 문제다. 분기점은 다음과 같다. 두 유저가 충전 범위에 있을 때 두 유저가 사용할 수 있는 파워가 가장 큰 충전기가 같을 때 두 유저가 사용할 수 있는 충전기가 둘다 1개일 때 -> 한 유저가 충전기 사용을 포기하고 다른 유저가 사용 한 유저가(혹은 두 유저가) 사용할 수 있는 충전기가 2개일 때 -> 두개를 가지고 있는 유저가 파워가 큰 첫번째 충전기 사용을 양보하고 충전기를 ..
문제 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 풀이 시간초과가 나지 않을까? 처음에 효율적인 접근 방법이 있을까? 생각했다. 그런데 그냥 다음 로직처럼 구성하면 끝이였다. 상어 위치를 경로 큐에 넣는다. (스타트) 스타트에서 BFS 맵 전체를 탐색을 한다. BFS 탐색하면서 자신이 먹을 수 있는 물고기의 위치와 떨어진 거리를 다른 물고기 리스트에 저장한다 모든 맵의 거리와 물고기 위치를 탐색했으면 물고기 리스트를 순회한다 물고기 ..
문제 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 풀이 주사위의 전개도를 그려보고 이동했을 때 각 면이 어느 위치로 바뀌는지 생각하고 구현하면 되는 문제. 다음과 같이 접근하였다. 처음 주사위는 6면은 다음을 가리키고 있다. (참고로 문제 본문에서 제시하는 면의 숫자와 다르다. 본인 임의로 배치한 것) 상 : 1 , 하 : 4 좌 : 2 , 우 : 5 앞 : 3 , 뒤 : 6..
문제 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 풀이 괴랄한 정답률이 왜 나왔는지 알 수 있는 문제.. 처음에는 단순하게 한개의 벽을 부수고 BFS탐색하여 최단 경로를 구하려고 했는데 그렇게 쉽게를 문제가 나올리가 싶었다. 실마리를 찾지 못하다가. 질문글에서 다음 글을 보았다. 4번 항목을 보면 여기까지 오면서 벽을 부순 적이 있는가 여부를 큐에 저장해서.... 를 보고 벽을 깬 여부를 맵을 탐색하면서 같이 체크하..
문제 https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 풀이 문제에서 주어진 조건을 확인하자. R X C 행열로 주어지고 비어있는 곳은 ' . ' , 물이 차 있는 지역은 ' * ' , 돌은 ' X ' 로 표시되어 있다. 비버의 굴은 'D' 고슴도치 위치는 'S' 로 나타내어져 있다. 문제에서 원하는 것은 고슴도치 'S'가 비버의 굴 'D'까지 이동할 수 있다면 걸린 최소 시간을 구하는 것이 목적이다. 문제에서는 고슴도치는 물에 바쪄 죽지 않기 위해 물이 차..
문제 문제링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 일일히 한 원소씩 토글하여 풀었음 하지만 이렇게 풀면 배열의 길이가 길어질 수록 매우 비효율적인 풀이방법임. 위의 방법과 다르게 왼쪽부터 배열원소를 탐색하면서 처음에는 0을 탐색하고 0값과 다른값이 나오면 카운트를 증가하고 1을 다시 탐색하여 토글하는 방법으로 검사하는 것이 더 빠름. 비 효율적인 풀이 (하나씩 원소를 변경) import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.stream.Stream; public class SWEA_1289 { pu..
문제 https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 풀이 스위치 토글 배열은 선언하면 쉽게 구현할 수 있는 문제 여학생 입력에서 왼쪽 오른쪽 인덱스를 지정해서 범위안에 전부 토글하면 해결할 수 있다. package BOJ.Implementation; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.u..