알고리즘/백준 알고리즘
[백준 -1181번] 단어정렬 - JAVA 정리 및 해설
[백준 -1181번] 단어정렬 - JAVA 정리 및 해설
2019.01.05안녕하세요. 오늘은 단어 정렬과 그 속에 체크할 점을 짚고 넘어가겠습니다.단어정렬 이문제는 그렇게 어려운 문제는 아닙니다. 기본적으로 정렬이라는 간단한 알고리즘을 통해서 문제를 풀어 내면 됩니다. 문제링크: https://www.acmicpc.net/problem/1181 자바에서 여러가지 조건을 동시에 만족하는 정렬을 사용할때는 Comparator를 이용해서 정렬을 사용해야합니다. 문제의 정렬 조건은길이가 짧은 것부터길이가 같으면 사전 순으로 위와 같기때문에 잘 짚고 넘어가야됩니다. 자바에서는 Comparator가 세부적인 정렬 예를들면, 자료 1 자료 2가 있을때 자료 1은 오름차순 자료 2는 내림차순으로 정렬을 해야하는 경우일때 기본정렬로는 해결이 잘 안되기때문에 comparator를 새로 지정해서..
[백준 -10819번] 차이를 최대로 - JAVA 정리 및 해설
[백준 -10819번] 차이를 최대로 - JAVA 정리 및 해설
2018.12.09안녕하세요. 주인장입니다. 오늘은 "차이를 최대로"라는 문제를 풀어볼건데요. 일단 제 생각의 흐름대로 (즉, 삽질 한대로 포스팅을 해보려고 합니다. ) 전 이 차이를 최대로 문제가 최대수 - 최소수를 빼면 된다고 생각했습니다. 그러면 max값 구하기에 수월하다고 생각했는데요. 그래서 일단 수를 받은뒤에 정렬을 해서 최소와 최대를 정렬을 하고 새로운 배열에 제일 최대수 제일 최소수 그다음 최대수 그다음 최소수.... 방식을 취하면 된다고 생각했습니다. 근데 딱히 좋은 방법은 방법은 아니였죠. 이러면 이 최대 합이 56이 나오게 됩니다. 왜냐하면 이방식은 뭔지는 모르겠지만 (즉, n개수가 많아져서 정확하게 뭐가 뭔지 파악하긴 어렵지만.) 62가 나오는 경우가 아니게 되므로, 이방식으로 풀면 안되는 것이죠. ..
[백준 -1260번] DFS와 BFS - JAVA 정리 및 해설
[백준 -1260번] DFS와 BFS - JAVA 정리 및 해설
2018.12.06안녕하세요 . 백준 문제풀이겸 해설을 맡은 주인장입니다.저는 문제를 풀때 꼬리를 물면서 풀기를 좋아합니다. 그래서 DFS와 BFS를 배울때 문제를 풀면서 같이 적용하는 것을 꽤 좋아합니다. DFS와 BFS는 자료를 탐색할때 사용하는 방법으로 자료 탐색시 노드에따라서 어떤식으로 찾을지에 대해서 방식이라고 생각하면 됩니다. 일단 DFS와 BFS를 알기전에 (물론 몰라도 적용은 가능한게 있지만, 그래도 연계해서 알면 좋습니다.) 먼저 익혀야할 개념은 그래프입니다. 그래프는 사실 트리와 DFS와 같은 탐색문제들에 자주 빈번하게 나오는 문제입니다. 그래서 가장 쉬운 이문제를 통해서 두가지 개념을 동시에 알아 보겠습니다.(단, 이문제에 적용하는 것이지 고급개념에는 적용하기 어려울 수 있으니 차후에 제가 따로 그래프..
[BOJ - 1158번] 조세퍼스 문제 - JAVA 정리 및 해설
[BOJ - 1158번] 조세퍼스 문제 - JAVA 정리 및 해설
2018.10.11간간히 올리는 백준해설 문제를 진행하려고 합니다. 틈틈히 제가 좀 정리가 필요한 경우, 이런식으로 블로그에 정리를 해서 올리겠습니다. 문제는 조세퍼스 순열을 구하는 문제로, 순번 찾기 즉, 수건돌리기처럼 제 순번에 잘 튀어 나오는 게 핵심입니다. 그럼 잘 구하면 되는데, 뭐가 문제냐면, 그 순번이 끝지점에 갔을때 원래 위치로 돌아와야하는데, 그게 잘 안됩니다. ㅂㄷㅂㄷ... 즉, 원래 순번으로 다시 돌아오게끔 해주는 작업을 해야한다는 것이죠. 일단, 저는 무식한 방법(Brutal Force)를 이용해서 한번 다 때려 보기로했습니다. import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main ..