이 문제는 입출력 관계를 이해하기 어려웠다. Queue라는 말을해서 문제푸는 방법의 힌트를 주긴했지만 문제 자체를 이해하기는 쫌 어려웠던것 같다. 문제 이해아래 입력에서 왜 출력 5가 나왔냐면 [입력] -> [출력]6 0 51 1 9 1 1 1 입력단계에서 첫번째줄 6은 문서의 개수고 0은 몇번째로 출력되는지 알고싶은 문서의 번호이다. 문서의 번호는 0부터 시작하고 몇번째로 출력되는지는 1부터 시작한다. 문서의 개수가 6이므로 문서 배열은 {0, 1, 2, 3, 4, 5} 이렇게 된다. 그리고 중요도의 배열은 {1, 1, 9, 1, 1, 1} 이 된다.이 둘의 관계를 배열로 묶으면 {{0, 1}, {1, 1..
이 문제를 이해하는데 쫌 시간이 오래 걸렸다. 간단하게 설명하면 각 칸마다 높이가 있고, 물이 0부터 차 올랐을 때 가장 큰 안전영역 개수를 구하면 된다. 물이 4만큼 차 올랐을 때 안전영역은 아래와 같이 구해진다. 만약에 물이 안차오르면 안전영역은 1이다. 그래서 각 칸의 높이가 전부 1이면 답은 1이다. 물의 최대 높이는 지역의 최대 높이이다. 그래서 물의 높이는 0부터 지역의 가장 큰 수만큼 돌려주면 된다. 물의 높이 0도 신경 써야 하는 이유는 메모에 "아무 지역도 물에 잠기지 않을 수도 있다." 는 조건이 있기 때문이다. [전체 풀이 코드] package baekjoon.classfication.dfs; import java.io.BufferedReader; import java.io.Input..
이 문제는 골드5 문제로 일반 사람과 적록 색약 따로 BFS를 돌려서 풀어야 한다. 맨 처음 문제를 해결할 때는 BFS 돌릴 때 분기를 줘서 해결해보려고 했지만 너무 조건문이 복잡해져서 적록 색약 map을 따로 만들고 G를 R로 변경하는 방식으로 바꿨다. 가독성을 위해 조건문은 최대한 2차 까지만 하려고 노력했다. 최대한 깔끔하게 코드를 작성하는 것이 관건인 문제인 것 같다 [풀이 코드] import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; //https://www.acmicpc.net/p..
이 토마토 문제는 골드5 문제로 실버 단계에서 풀던 bfs 공식 으로 풀리지가 않았다. 기존 bfs의 공식이라 함은 for문을 돌아서 1을 찾은 다음 바로 큐에 담고 방문체크를 한 다음에 bfs를 돌리는 것인데 똑같이 이렇게 푸니 절대로 풀리지 않는 문제가 있었다. 기존 풀이 코드 for (int i = 0; i < mapZ; i++) { for (int j = 0; j < mapY; j++) { for (int k = 0; k < mapX; k++) { if (map[i][j][k] == 1 && !isVisited[i][j][k]) { isVisited[i][j][k] = true; bfs(i, j, k); } } } } 직면한 문제와 해결 방법 만약 입력이 아래 처럼 주어졌을 때 밑에 1을 찾아 바..
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 이 문제는 (1,1) 위치에서 (N,M) 위치로 가는데 최소 칸수를 구하는 문제이다. 최단 경로 문제는 BFS 를 사용하면 된다고 생각하면 된다. BFS는 갈 수 있는 인접한 경로를 모두 방문하기 때문에 최초 방문된 시점이 출발 노드점에서 갈 수 있는 가장 빠른 경로이기 때문이다. 그래서 이문제도 BFS로 풀면 된다. 최단경로 문제는 BFS로 푼다는 걸 공식처럼 생각하면 된다. 시간 복잡도는 인접 행렬을 사용할거기 때문에 N, ..
BFS(Breadth First Search, BFS)는 주로 최단거리나 최단 시간등 목표 상태에 도달할 수 있는 가장 빠른 경로를 탐색하는데 활용된다. 왜냐하면 BFS는 인접한 노드들에 대해서 모두 방문을 하기 때문에 방문한 시점이 가장 최단 경로의 시점이기 때문이다. BFS 문제 풀이 순서 1. input 단계에서 방문 체크 isVisited 배열과 , 방문 경로 map의 배열, 방문체크 dy, dx 배열을 만든다 2. for문을 돌아서 map에서 방문 위치를 찾아낸다. 3. 찾은 위치를 Queue에 넣고, 방문 체크를 한다. 4. Queue에서 뽑은 map위치에서 방문 경로를 뒤진다. 5. 방문 경로에서 조건에 맞으면 Queue에 넣는다. Queue가 다 비워질때 까지 계속 방문 경로를 뒤지고 조건..
깃 클라이언트를 쓰지 않고 개발툴 인텔리제이나 이클립스에서 깃을 사용하거나 커맨드로 깃을 이용하는 사람이 있을 것이다. 보통 GUI 툴로 소스트리를 사용하지만 쫌 더 가벼운 깃 포크를 한번 써보는 것을 추천한다. 개발툴에서 사용하던 사람은 취향이니 개발툴에서 계속 사용해도 상관없다. 깃 포크는 무료버전과 유료버전이 따로 있다. 무료버전을 쓰더라도 왠만한 기능은 다 쓸 수 있다. 깃 GUI 툴을 회사에서 사용하고 강력한 기능을 원하면 유료버전인 깃 크라켄을 알아보는것도 좋다. 나는 깃을 개발툴에서만 사용했는데 깃 포크를 써보니 소스파일이 어느 위치에서 수정되었는지 알 수 있고, diff 파일을 편하게 볼 수 있어서 좋았다.
[공부이유] 코딩테스트는 좋은 회사를 가기 위해서는 필수적으로 공부를 해야 한다. 코딩테스트를 안보는 회사도 있지만 그 회사가 코딩테스트를 보는 회사보다 좋은 경우는 별로 없을것이고 자기가 가고 싶은 회사가 코딩테스트를 보면 면접도 볼 수 없다. 회사에서 코딩테스트는 많은 입사자를 거르기 위한 거름망 용도로 생각하면 된다. [코딩테스트 공부 사이트, 책과 사이트 장단점] 코딩테스트 공부 할 수 있는 사이트는 많지만 대표적으로 3군데가 있다. 1. 백준(https://www.acmicpc.net/) 2. 프로그래머스(https://programmers.co.kr/) 3. 릿코드(https://leetcode.com/) 코드를 크게 입력, 구현부, 출력 으로 나눴을때 백준은 다 코딩 해야 되지만, 프로그래머..
디비버 툴을 이용하면서 같은 DB에 여러 script 윈도우 창을 띄워서 하게 되는 경우가 많다. script window창을 생성 할때 마다 새로운 세션이 DB에 연결되면 서버에 많은 무리가 갈 수 있기때문에 여러 script window를 생성하더 라도 한개의 세션만을 연결 할수 있는 방법이 아래 설정이다. 환경설정 > 편집기 > SQL 편집기 에서 Open separate connection for each editor 체크 해제하면 편집기 추가시 커넥션 하나씩 추가 안되게 할 수 있다. 운영서버 연결할때는 해제해야한다.
이클립스를 다운받았는데 WAS를 설정 하려고 했더니 아래 처럼 preferences에 server 탭이 없는 경우가 있을 것이다. 위 경우는 이클립스 받을때 IDE for Java Developers로 다운받아서 이기 때문에 아래 Java and Web Developers로 새로 다운을 받으면 된다.
파일이 커서 로그파일이 보기 힘들때는 밑에 부분을 짤라서 복사하고 가져 오는게 좋다 명령어 tail -n [밑에서 부터 짜를라인] [파일명 | cat > [경로]/[복사할 파일명] 만약 가져온 파일이 커서 notepad나 메모장으로 안열리면 sublime text 파일을 이용하면 된다. https://www.sublimetext.com/ 로그파일은 snake tail 파일로 보면 편하다. https://github.com/snakefoot/snaketail-net/releases Releases · snakefoot/snaketail-net Tail utility for monitoring text log files and Windows EventLog - snakefoot/snaketail-net gi..
[기본 인코딩 UTF-8 변경]- General > Content Types 탭- Text 선택 후 Default encoding 란에 UTF-8 입력- Update - General > Workspace 탭- Text file encoding 란에서 Other > UTF-8 택 후 Apply - Web > CSS Files / HTML Files / JSP Files , XML > XML Files 탭- Encoding : ISO~~(UTF-8) 로 설정 후 Apply [D2CodingLigature 폰트 변경] 위 첨부파일 압축풀고 3개파일 설치 - Font로 해당되는 부분 모두 Edit 선택 후 Font를 바꿔준다. [공백 탭 표시]..