카테고리: Algorithm
백준 12100 2048 easy
백준 2048 문제는 2048 게임을 간단하게 시뮬레이션 해보는 문제이다. -> 왼쪽, 오른쪽, 위, 아래의 방향으로 움직였을 경우 숫자들이 합쳐지는 것만 구현한다면 dfs로 그리 어렵지 않게 풀 수 있는 문제이다. 단순히 생각대로 위, 아래, 오른쪽, 왼쪽 함수를 모두 만들어 풀어 코드가 지저분하고 긴 감이 없지 않아 있다. 123456789101
백준 13459 째로탈출
백준 째로 탈출은 10번이라는 횟수의 제한 안에 파란 구슬을 빼지 않으면서 빨간 구슬을 뺄 수 있는지 시뮬레이션을 해보는 문제이다. bfs를 통해서 현재 빨간 구슬, 파란구슬의 위치에 대해 상,하, 좌,우 움직인 좌표가 어디인지를 확인해 나가면 풀 수 있는 문제이다. 생각보다 구현도 짜증나고 상,하,좌,우 움직였을 때 일단 한쪽으로 구슬을 몰아 넣은 다
백준 14500 테트로미노
백준 테트로미노는 n * m 배열에 적혀 있는 숫자에 도형을 넣은뒤 도형이 놓여지는 숫자들의 합이 최대로 되게 하는 문제이다. 이 문제는 단순히 도형 하나씩을 넣어보면 되기 때문에 빈틈없이 꽉 채우는 타일링 문제보다 쉬운 것 같다. 먼저 0,0을 기준으로 도형의 상대적인 좌표들로 5개의 도형을 표현 한뒤, rotate, 대칭한 도형들에 대하여 모든 좌
백준 1700 멀티탭 스케줄링
분류는 그리디 알고리즘이며, 문제 해결 절차는 이렇습니다. 1. 내가 사용할 아이템(장비???)가 꽂혀있는지 확인합니다. 2. 1에서 꽂혀있으면 다음 장비로 넘어갑니다. 3. 1에서 꽂혀있지 않으면 비어있는 포트가 있는지 확인한다. 4. 3에서 빈 포트가 있으면 그냥 꽂는다. 5. 3에서 빈 포트가 없으면 현재 꽂혀 있는 아이템 중에 나중에 가장 늦게 사용
백준 2250 트리의 높이와 너비
백준 2250 트리의 높이와 너비는 트리의 노드에 번호를 붙이고, 같은 레벨에 있는 최대 노드 번호 - 최소노드 번호 +1의 값이 가장 큰 즉 너비가 가장 넓은 레벨과 너비의 값을 출력하는 문제이다. 이 과정에서 트리의 번호를 어떻게 매기는가는 문제의 그림을 보면 쉽게 알 수 있다. 위에서 2번 번호를 가진 노드를 보자. 2번을 기준으로 번호를 매길
백준 5525 IOIOI
백준 5525 IOI는 I와 O로 이루어진 문자열에서 연속적으로 IOI로 이어진 문자 Pn이 몇개 있는지 그 개수를 세는 문제이다. 위 문제에서와 같이 P1은 IOI P2는 IOIOI와 같이 IOI가 연속적으로 붙어 있는 문자로 존재하게 된다. 여기서 N이라는 숫자가 주어지게 되는데 Pn을 만족하는 문자열이 몇군데 존재하는지 찾는 문제이다. 이 문제는
허프만 코드 알고리즘
####기본 개념 허프만 코드는 압축에서 기본적으로 쓰이는 개념으로 자주 쓰이는 문자열에 대해 적은 비트를 할당하여 문자를 압축하는 알고리즘이다. -> 예를 들어 “AABBABAAACDEKSPEQAAA” 라는 문자열이 있을 때 여기서 사용되는 A라는 문자열은 가장 많이 쓰이므로 이를 압축할 때 가장 적은 비트수를 가지는 0과 같은 비트로 매칭하여