본문 바로가기

코딩테스트

(37)
[백준 JAVA] 14502. 연구소 문제 링크https://www.acmicpc.net/problem/14502접근 방법세울 수 있는 모든 조합으로 벽을 만듭니다 (브루트 포스). 이때, 세웠던 조합으로 다시 세우지 않도록 합니다.벽 3개를 세울 때마다 바이러스를 퍼뜨립니다. 소스 코드import java.util.*;import java.io.*;public class Main { static List virus = new LinkedList(); // 바이러스의 위치를 저장하는 리스트 static int[] dy = {0, 0, -1, 1}, dx = {1, -1, 0, 0}; static int[][] map; static int y, x, max = 0, safe = 0; public static void..
[백준 JAVA] 1916. 최소비용 구하기 문제 링크https://www.acmicpc.net/problem/1916접근 방법다익스트라 문제입니다.소스 코드import java.util.*;import java.io.*;public class Main { static class Node implements Comparable { int v, cost; public Node(int v, int cost) { this.v = v; this.cost = cost; } @Override public int compareTo(Node other) { return this.cost - other.cost; } } ..
[백준 JAVA] 18352. 특정 거리의 도시 찾기 문제 링크https://www.acmicpc.net/problem/18352 접근 방법모든 도로의 거리는 1로 동일하므로 다익스트라가 아닌 bfs로 접근합니다.소스 코드import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int city, road, d, s; StringTokenizer st = new StringTokenizer(br.readLine()); city..
[백준 JAVA] 23970. 알고리즘 수업 - 버블 정렬 3 문제 링크https://www.acmicpc.net/problem/23970접근 방법배열 A와 B가 같은지 확인하는 횟수를 최대한 적게 합니다.소스 코드import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); String[] tmp = br.readLine().split(" "); int[] a = ..
[백준 JAVA] 1753. 최단경로 문제 링크https://www.acmicpc.net/problem/1753접근 방법다익스트라 문제입니다.소스 코드import java.util.*;import java.io.*;public class Main { static class Node implements Comparable { int v, cost; public Node(int v, int cost) { this.v = v; this.cost = cost; } @Override public int compareTo(Node other) { return this.cost - other.cost; ..
[백준 JAVA] 16472. 고냥이 문제 링크https://www.acmicpc.net/problem/16472접근 방법투 포인터를 사용합니다.몇 종류의 문자를 썼는지와 각 문자를 몇 개씩 사용했는지 세어줍니다.사용한 문자가 N을 넘었으면 왼쪽 포인터를 사용한 문자 종류가 감소할 때까지 옮깁니다.소스 코드import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 최대 문자 수 int max = Inte..
[프로그래머스 JAVA] 42839. 소수 찾기 문제 링크  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 방법만들 수 있는 모든 수를 순열로 구해줍니다.같은 숫자인 경우를 처리해야 하므로 set을 사용합니다.최대 7자리 수이기 때문에 에라토스테네스의 체를 사용합니다.소스 코드import java.util.*;class Solution { char[] ch, bf = new char[7]; List arr = new LinkedList(); boolean[] visited; void permutation(int idx, int num) { if (idx == num)..
[백준 JAVA] 1033. 칵테일 문제 링크https://www.acmicpc.net/problem/1033접근 방법비례식 여러 개를 합치는 문제입니다.예를 들어 1) A : B = 2 : 3이고 2) A : C = 8 : 6이면 A : B : C = 4 : 6 : 3이 됩니다.1)의 A와 C 값을 곱하면 12가 되고, 1) 에는 C가 없으므로 8이 됩니다.곱한 결과값의 최대공약수는 4이므로 4로 나눠주면 3과 2가 됩니다.1) 에다가 2를 곱해주고, 1)에 C가 없으므로 3을 넣어주면 4 : 6 : 3이 됩니다.소스 코드import java.util.*;import java.io.*;public class Main { static ArrayList> arr; static int[] answer; static int n, visit; s..