알고리즘/백준 (87) 썸네일형 리스트형 [문제] 백준 23288번 주사위 굴리기 2 https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 풀이 주사위 굴리는 것에 대해서 생각을 오래했다. 숫자로 생각하지말고, 주사위가 굴러갈 떄마다 주사위 면이 어떻게 변하는지 생각하면 풀리는 문제였다. 굴리는 방향별로 나눠서 생각하면 됐다. 연속해서 이동할 수 있는 경우는 DFS로 간단하게 풀어내면 된다. import java.io.BufferedReader; import java.io.IOException; import java.. [문제] 백준 2251번 물통 자바 https://www.acmicpc.net/problem/2251 2251번: 물통 각각 부피가 A, B, C(1≤A, B, C≤200) 리터인 세 개의 물통이 있다. 처음에는 앞의 두 물통은 비어 있고, 세 번째 물통은 가득(C 리터) 차 있다. 이제 어떤 물통에 들어있는 물을 다른 물통으로 쏟아 부 www.acmicpc.net 내 풀이 BFS 문제이다. 물통에서 물을 옮기는 방법은 아래와 같이 6가지 이다. 1. B->A 2. C->A 3. A->B 4. C->B 5. A->C 6. B->C 이에 맞게 BFS를 작성하면 된다. public class Main { static int maxA, maxB, maxC; static ArrayList answer; public static void main(.. [문제] 백준 11723번 집합 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net string도 switch문으로 비교 가능하다는 것을 알게 됐다. 또한, HashSet을 적절히 이용하는 방법을 연습할 수 있었다. public class Main { public static void main(String[] args) throws NumberFormatException, IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(System.. [문제] 백준 15666번 N과 M (12) - Java https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 중복조합 문제다. HashSet을 사용해서 중복되는 수열을 걸러줬다. 이 문제를 끝으로 N과 M 모음집이 끝났다. 순열 조합은 알고리즘의 기본이므로 헷갈린다면 모음집을 다시 풀어보도록 하자. public class Main { static int N,M; static int[] arr; static StringBuilder sb = new StringBuilder(); static HashSe.. [문제] 백준 15665번 N과 M (11) - Java https://www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 중복순열 문제다. 앞에서 푼 문제에서 hashset을 사용했던 것 대신 linkedlist를 사용했더니 시간초과가 떴다. 검색해보니, hashset보다 linkedlist의 시간이 훨씬 많이 나온다. (참고 글: https://12bme.tistory.com/91 - Collection 인터페이스별 성능 비교 글) public class Main { static int N,M; static i.. [문제] 백준 15664번 N과 M (10) - Java https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 조합문제다. HashSet을 사용해서 중복되는 수열이 있는지 검사해주었다. 생각해보니, 저렇게 set을 이용할 거라면 그냥 list를 사용해도 될 것 같다. public class Main { static int N,M; static int[] arr; static StringBuilder sb = new StringBuilder(); static HashSet set = new HashSet.. [문제] 백준 15663번 N과 M (9) - Java https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 순열 문제. 이 때, 중복되는 수열을 여러번 출력하지 말아야 하므로 HashSet을 사용했다. 처음에 HashSet set에 순열이 완성된 수열을 담았는데, 문자열이 중복되서 들어가는 문제가 발생했다. HashSet에는 String을 담아야 중복되는 문자열을 걸러준다고 한다. (참고한 글: https://www.programmersought.com/article/4365667592/ ) set에.. [문제] 백준 15656번 N과 M (8) - Java https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 사전순으로 출력해야하므로 먼저 배열을 정렬시켜준 다음에 중복조합으로 문제를 풀면 된다. public class Main { static int N,M; static int[] arr; static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { Buffered.. 이전 1 2 3 4 ··· 11 다음