본문 바로가기

분류 전체보기270

[백준] 7569번 토마토 이전 문제와 같은데 입력만 한번 더 받은 문제였다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113package baekjun; import java.util.LinkedList;import java.util.Queue;import java.util.Scanner; class Coor{ int x; int y; int z; Coor(int x,.. 2018. 8. 27.
[백준] 7576번 토마토 - 기억할 것1. 익은 토마토가 있는 곳 = 행렬의 값이 1인 지점을 시작점으로 해야한다. >> 처음에 행렬 값이 1인 x,y 좌표를 먼저 저장한다.2. 애초에 다 익은 경우 0을 출력, 다 익지 못하는 경우 -1을 출력3. 익은 토마트 = 안익은 토마토 + 14. 현재 있는 위치가 (x,y) 라면 그 다음 갈 수 있는 좌표는 인접해 있는 상,하,좌,우 칸입니다. 즉, 상 : (x-1,y) , 하 : (x+1,y), 좌 : (x,y-1), 우 : (x, y+1) 이므로 이를 4개의 순서쌍으로 생각해서 배열로 만들 수 있다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555.. 2018. 8. 21.
[백준] 1260 DFS와 BFS DFS와 BFS를 공부하고 좋은 예제를 찾아보다가 백준 알고리즘을 찾게되었다.DFS는 스택을 이용한 방식으로 현 경로상의 노드만을 기억하면 되기때문에 저장공간의 수요가 적다.목표노드가 깊은 곳에 있는 경우 빨리 구할 수 있다. BFS는 큐를 이용한 방식이다. 현 노드에서 인접한 노드를 모두 들리면서 탐색하는 방식이다. 문제. 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다.입력. 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 .. 2018. 8. 20.
백준 2747, 2748 피보나치 수 오늘 간단한 피보나치 수열 문제를 풀다가 의외의 복병에 만나서 헤매게 되었다.백준 2747문제 n번 째 = 45 까지백준 2748문제 n번 째 = 90 까지문제의 형태는 같은데 입력 받을 수 있는 수의 크기가 차이나는 문제였다. 2747번 문제를 아무 생각없이 배열과 반복문을 사용해서 제출했는데 "틀렸습니다"왜그런가 하고 재귀함수를 써서 했더니 "정답" 그리고 2748번 문제는 2747을 복붙했더니 역시나 "틀렸습니다"다시 원래 배열과 반복문을 사용했더니 "정답" 왜그럴까? 정답은 속도 차이에 있었다. 2747번 문제는 45번까지라 단순히 재귀함수를 사용해서 풀게끔 의도가 되어있었다. (값이 작음)하지만 2748번 문제는 n 이 90까지인데 재귀함수를 사용할 경우 호출이 누적되면서 실행시간이 매우 오래걸.. 2018. 8. 6.
DAO 확장 1.3 DAO의 확장 1.3.1. 클래스의 분리 이번에는 아예 상속 관계가 아닌 독립적인 클래스로 만들어보려한다. DB 커넥션 부분을 별도의 클래스에 작성하고, 별도 클래스를 UserDao가 이용하게 하려한다. 위와 같이 SimpleConnectionMaker() 클래스를 작성해 UserDao가 이용하게 하는식으로 작성을 했지만, 상속을 이용한 경우와 마찬가지로 두 가지 문제가 생겼다. 1. SimpleConnectionMaker 메소드를 사용해 DB커넥션을 가져오는데 만약 다른 곳에서는 메소드이름을 다르게 사용한다면 커넥션을 가져오는 메소드 이름을 모조리 바꿔줘야하는 문제가 생긴다. 2. SimpleConnectionMaker라는 클래스 타입의 인스턴스 변수를 정의해놓고 있으므로, 다른 클래스를 구현할.. 2018. 8. 2.
DAO작성& 관심사 분리 & 커넥션 추출 & mysql 연동 - DAO DAO(Data Access Object)는 DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트. 1.1.1 User 사용자 정보를 저장할 때는 자바빈 규약을 따르는 오브젝트를 이용하면 편리하다. create table users ( id varchar(10) primary key, name varchar(20) not null, password varchar(10) not null ) user 테이블은 위와 같이 구성했다. 1.1.2 UserDao 사용자 정보를 DB에 넣고 관리할 수 있는 DAO 클래스 위와 같이 코드를 작성하고 실행했더니 DB에 값이 들어간 것을 볼 수 있다. * 하지만 위와 같이 DAO를 작성했다면 매우 초보적인 수준이라고 한다. 1.2 DAO의 .. 2018. 8. 1.