전체 글 98

[JAVA/백준1924] 2007년

문제 문제풀이 월, 날짜를 입력 받고 1월 1일로부터 얼마나 지났는지 일수를 더한 후 현재 날짜를 더해준다. 그리고 7을 나눈 나머지값으로 미리 생성해둔 요일 배열에서 현재 요일이 무엇인지를 알 수 있다. 소스코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Scanner; import java.util.StringTokenizer; public class Main { public static StringTokenizer st; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(ne..

[JAVA/백준10951] A + B - 4

문제 문제 풀이 처음에 테스트케이스가 주어지지 않고 계속 입력을 받으므로 while(true)를 하여 Scanner로 a,b의 값을 받아주었는데 런타임 에러가 발생하였다. 검색 결과, Scanner클래스의 hasNext()를 사용하면 된다는 것을 알게 되었다. C/C++에서는 이런 경우 EOF(End Of File)를 사용하면 된다는데 Java에서는 EOF를 직접 입력했기 때문에 멈추기 때문이라고 한다. 소스코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int A = sc.nextInt..

[JAVA/2667] 단지번호붙이기

1. 문제 2. 문제 풀이 지도의 크기 n을 입력받을 때, n의 최대가 25이므로 나중에 출력될 단지개수는 최대 313개가 나올 수 있다. 따라서 각 단지 내 집수를 저장할 배열 danji의 크기를 최대 큰 (n*n/2)+2개로 잡아주었다. n+1사이즈의 map[n+1][n+1]을 for문을 돌면서 (1,1)부터 순서대로 이동시킨다. 이때 값이 1이고 한번도 방문하지 않은 경우가 나오면 단지번호(cnt)를 하나 증가시키고 dfs함수를 호출한다.dfs함수에서는 넘어온 좌표는 이제 방문했음을 표시해야 하므로 visited배열에서 해당하는 좌표에 1을 넣는다. 그리고 해당하는 단지번호에 집 하나가 들어온것이므로 danji[cnt]를 하나 증가시켜준다. 이제 이 단지에 있는 집을 '오른쪽→아래→왼쪽→위쪽'의 시..

[JAVA 알고리즘] 깊이 우선 탐색(DFS:Depth First Search)

깊이 우선 탐색(DFS)란? Depth First Search의 약자 한 방향으로 갈 수 있을 때 까지 계속 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 다른 방향으로 다시 탐색을 진행하는 그래프탐색 방법으로 넓게 보다는 깊게 탐색하는 방법 자기 자신을 다시 호출 하는 순환 알고리즘의 형태를 가지고 있다. 넓게(wid) 보다는 깊게(deep) 탐색하는 것 모든 노드를 방문하고자 하는 경우 선택한다 전위 순회(Pre-order Traversals)를 포함한 다른 트리 순회는 모두 DFS의 한 종류이다 그래프 탐색 시 노드의 방문여부를 반드시 검사하여야 한다 → 검사를 하지 않을 경우 무한루프 깊이 우선 탐색(DFS)의 과정 DFS 구현 DFS를 구현하는 방법은 1.순환 호출 이용 ..

알고리즘 2019.05.27

[JAVA/백준15552] 빠른 A+B

1. 문제 2. 풀이 Scanner대신 BufferedReader를 사용하여 입력 받을 경우 Enter로만 인식하고 데이터가 String으로 고정되기 때문에 작업 속도가 훨씬 빠르다. readLine()으로 입력을 받을시 리턴값은 항상 String이므로 다른 타입으로 입력받으려면 적절한 형변환이 필요하다. 그리고, 예외처리를 해주어야 하는데 대개 throws IOException을 넣어준다. BufferedReader를 이용하여 공백단위로 데이터 가공하기 1. StringTokenizer의 nextToken()함수를 사용하여 readLine()를 통해 입력받은 데이터를 공백 단위로 구분하여 순서대로 호출할 수 있다. BufferedReader br = new BufferedReader(new InputS..

2019 정보처리기사 시험 일정 & 관련 정보

시험 일정 1,2회는 이미 지나가고... 2019년 정기 기사 3회(7월 5일부터 접수~) 까먹지 말자! 시험 TIP https://open.kakao.com/o/g3O2xRN 정보처리기사 오픈채팅방 공지사항 참고하기★ 정보처리기사 단기합격 공부방[공지필독] #정보처리기사#정처기#합격팁#자격증#정처기팁#정처기공부#알고리즘#데이터베이스#합격자#컴퓨터자격증#필기#실기#단기합격 open.kakao.com