BAEKJOON(62)
-
[Baekjoon] 14889번: 스타트와 링크
https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 설명 N명의 사람들이 짝수로 주어진다. 같은 인원으로 두 팀으로 나누어 축구를 하려 한다. 이때 양 팀의 인원들은 서로의 팀 능력치가 있다. 양 팀의 실력이 비슷해야 게임이 재미있기 때문에 양 팀의 팀 능력치 차이가 가장 적을 때 그 차이를 출력해야 한다. 풀이 방법 DFS로 해결했다. 포인트는 인덱스와 팀원을 구성한 횟수를 파라미터로 넘겨서 종료 조건을 체크하는 것이다. 그리고 종료 후에 다시 방문했던 곳을 f..
2023.03.10 -
[Baekjoon] 1926번: 그림
https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 문제 설명 1과 0으로 구성된 그림 배열이 주어진다. 1로 이어진 것이 그림이다. 상하좌우로만 연결된 것으로 판단하며 대각선은 이어진 것이 아니다. 주어진 배열에서 그림 개수와 가장 크기가 큰 그림의 크기를 출력하면 된다. 풀이 방법 기본적인 그래프 탐색 문제이며 DFS와 BFS로 문제를 해결할 수 있다. DFS for (int i = 0; i < n; i++) { for (int j = 0; j < ..
2023.03.09 -
[Baekjoon] 1269번: 대칭 차집합
https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 문제 설명 두 집합 A, B가 주어질 때 ( A - B ) 와 ( B - A ) 의 합집합을 대칭 차집합이라고 한다. 이 대칭 차집합의 원소 개수를 구하면 된다. 풀이 방법 1. HashSet 집합이라는 문제에 걸맞게 HashSet으로 해결했다. 먼저 HashSet에 집합 A의 원소를 모두 넣는다. 그 다음 B의 원소를 넣을 때 이미 Set에 들어있다면 해당 요소를 제거하고 없다면 넣으면 된..
2023.03.08 -
[Baekjoon] 1620번: 나는야 포켓몬 마스터 이다솜
https://www.acmicpc.net/problem/1620 문제 설명 문제가 엄청나게 길지만 요약하면 다솜이가 사용할 포켓몬 도감을 만들어줘야 한다. N개만큼 포켓몬 이름이 입력되며 순서가 있고 순서대로 저장된다. 그 다음 입력되는 질문 M개에 대해서 대답해야 한다. 숫자로 들어오는 경우 해당 번호에 해당되는 포켓몬 이름이 출력되고 포켓몬 이름이 들어오면 해당 번호가 출력돼야 한다. 풀이 방법 2개의 HashMap을 이용해 해결했다. 한 개는 번호를 키로 사용하고 값을 포켓몬 이름을 저장하고, 다른 하나는 키로 포켓몬 이름을 사용하고 값으로 번호를 저장한다. 그 다음엔 질문이 숫자인지 포켓몬 이름인지 판별해야 하는데 이 방법으론 두 가지가 있다. matches()를 활용한 정규식 첫 글자만 가져와..
2023.03.07 -
[Baekjoon] 16236번: 아기 상어 - Java
https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제 설명 BFS를 활용한 구현 문제이다. 조건이 많아 문제를 잘 이해해야 한다. 문제에서 주어진 물고기를 먹는 조건은 다음과 같다. 아기 상어는 자신보다 큰 물고기는 먹을 수 없으며 공간 또한 지나갈 수 없다. 자신과 같은 크기의 물고기는 먹을 순 없지만 지나갈 수 있다. 자신보다 작은 물고기는 먹을 수 있다. 아기 상어의 이동 조건은 다음과 같다. 더 이상 먹을 수 있는 물고기가 없다면..
2023.03.06 -
[Baekjoon] 14425번: 문자열 집합 - Java
https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 문제 설명 N개의 문자열 집합 S가 주어진다. 그 다음 M개의 문자열이 입력되는데 이 중 집합 S에 포함된 문자열의 개수를 출력하면 된다. 풀이 방법 이렇게 중복체크하는 문제는 Set 자료구조를 활용하면 쉽게 해결할 수 있다. Set의 특징은 요소의 순서가 없으며 중복이 없다. 자바에서 제공하는 Set 중 가장 많이 사용되는 HashSet은 요소 접근에 대해 O(1..
2023.03.04