분류 전체보기(361)
-
[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 -
내가 보려고 만든 C++ 기본 문법 정리
컴파일러 담당 교수님께서 강의를 C++ 기반으로 진행한다고 하셔서 기본적인 C++ 문법을 정리한다. C++은 처음 써보는데 자바랑 C를 합쳐놓은 느낌이다. 기본 #include // 헤더 포함할 땐 #include using namespace std; // 네임스페이스 적용할땐 using namespace 이름 void printName(string name); // 함수 원형 선언 int main() { // 기본 자료형은 값이 할당되기 전에 쓰레기값이 들어있음 int i = 4; // 정수형 변수. short 없음 float f = 4.0; // 실수형 변수 double d = 4.0; // 실수형 변수 bool b = true; // 불린형 변수 string greeting = "Hello"; //..
2023.03.03 -
[Baekjoon] 16953번: A -> B - Java
https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 문제 설명 정수 A와 B가 주어진다. 그리고 A를 B로 만들려고 하는데 가능한 연산 규칙은 다음 두 가지다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구하면 된다. 풀이 방법 A를 B로 만드는 것보다 B를 A로 만드는 게 더 편할 것 같다는 생각으로 반복문을 통해 해결했다. 예전이 이와 비슷한 방법으로 해결했던 문제가 있었다. https://somuchthings.tistory.com/181 (지금보니 이 문제 이름도 'A와 B' 였다 ㅎㅎ) 위 규칙에 따르면 1의 자리..
2023.03.03 -
[Baekjoon] 1388번: 바닥 장식 - Java
https://www.acmicpc.net/problem/1388 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net 문제 설명 바닥 장식을 위한 타일 개수를 카운팅하는 문제이다. 단, -- 과 같이 이어져 있다면 하나의 타일로 간주한다. 풀이 방법 DFS를 활용하여 문제를 해결했다. 이어져 있는 타일의 끝까지 간 후에 카운팅하면 되기 때문이다. 고려해야 할 점은 바닥면의 끝부분에 닿은 상황이다. 이 경우에는 타일을 더 놓을 수 없으므로 해당 칸에서 DFS를 종료시킨다. private static void dfs(int..
2023.03.02 -
[Baekjoon] 10815번: 숫자 카드 - Java
https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 설명 상근이가 가지고 있는 카드 더미와 비교 카드 더미를 받아서 상근이가 가지고 있는 카드들을 체크하는 문제이다. 풀이 방법: Set, List - 통과 비교 카드 더미 중 상근이의 카드 더미만 확인하면 되므로 상근이의 카드는 Set으로 저장한다. HashSet의 contains()의 사간 복잡도는 O(1)이므로 매우 빠르다. Set sangeunCards = ..
2023.03.01