Algorithms/문제 풀이

    [BOJ 18352] 특정 거리의 도시 찾기

    특정 거리의 도시 찾기 BOJ 18352 : 특정 거리의 도시 찾기 해설 다익스트라 알고리즘 사용을 눈치 챘다면, 풀이는 쉽다. 구현 class Node implements Comparable { private int vertex; // 정점 private int cost; // 비용 public Node(int vertex, int cost) { this.vertex = vertex; this.cost = cost; } public int getVertex() { return vertex; } public int getCost() { return cost; } @Override public int compareTo(Node o) { return this.cost - o.cost; // 비용이 낮을 수록..

    [BOJ 3190] 뱀

    뱀 BOJ 3190 : 뱀 해설 처음에 이 문제를 풀 때, 제 시간에 풀지 못했다. 꼬리, 몸통, 머리 부분이 이해가 잘 안갔었는데 이 부분에 대한 해설은 다음과 같다. # 꼬리, 몸통, 머리 예를들어 뱀이 (0, 0)에서 시작해서 계속 사과를 먹으며 우측으로 이동해 (0, 3)까지 간 상태라면 queue = (앞=꼬리) { (0,0), (0,1), (0,2), (0,3) } (뒤=머리) 가 된다. 사과를 못 먹어서 꼬리부분을 당겨야 되는 상황이라면 꼬리 위치의 값을 빈 값으로 설정하면 된다. 이 문제의 핵심은 Queue 를 사용한다는 것을 빨리 눈치 채야하는 것 같다. 그리고 나머지는 구현 문제 답게, 문제에 나와있는 조건들에 따라 차근차근 구현하면 되는 것 같다. Strategy 전략(Strategy..

    이것이 코딩 테스트다 : 모험가 길드

    모험가 길드 책 이것이 코딩테스트다의 모험가 길드 문제풀이 해설 몇 가지 케이스를 만들어서 오름차순(Asc) 와 내림차순(Desc) 기준으로 구분을 해봤다. 마지막 Case4 를 보면 오름차순으로 정렬되었을 때 그룹 수의 최댓값을 구할 수 있는 것을 알 수 있다. 그리고 파란색으로 밑줄친 부분이 조건문이 필요하다는 핵심적인 부분이다. 저부분을 통해 어떤식으로 조건문을 짜면 되는지 힌트를 얻을 수 있다. 구현 public class Main { private static int N; private static int[] fear; private static int group; public static void main(String[] args) { input(); greedy(); System.out.pr..

    [BOJ 18406] 럭키 스트레이트

    럭키 스트레이트 BOJ 18406 : 럭키 스트레이트 구현 public class Main { private static String N; private static int left = 0; private static int right = 0; public static void main(String[] args) { input(); solution(); } private static void input() { Scanner sc = new Scanner(System.in); N = sc.nextLine(); } private static void solution() { String[] numbers = N.split(""); int middle = numbers.length / 2; for (int i ..