본문 바로가기
728x90

알고리즘118

[JAVA]백준 1062번: 가르침 https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 1. 문제 설명 남극의 단어는 "anta"로 시작되고 "tica"로 끝난다. 김지민 선생님이 K개의 글자를 가르칠 수만 있다고 할 때, 남극의 단어 N개 중 학생들이 읽을 수 있는 단어의 최댓값을 구하는 문제. 2. 풀이 조합과 브루트포스 알고리즘으로 풀 수 있다. 비트 마스킹으로 풀면 더 빨리 풀 수 있는데 아래 코드에서는 배열을 사용하여 현재 배운 단어가 무엇인지 체크했다. 남극의 모든.. 2021. 7. 19.
[JAVA]백준 3055번: 탈출 https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 1. 문제 설명 고슴도치가 비버의 굴로 도망가 홍수를 피하려고 한다. 매 분마다 고슴도치와 물은 현재 있는 칸과 인접한 네 칸 중 하나로 이동할 수 있다. 고슴도치는 물로 차 있는 곳과 돌을 통과할 수 없으며, 물도 돌을 통과할 수 없다. 고슴도치는 다음 시간에 물이 찰 예정인 칸으로도 이동할 수 없다. 숲의 지도가 주어질 때, 고슴도치가 안전하게 비버의 굴로 도망가기 위해 필요한 최소 시간을 구하여라. 고슴.. 2021. 7. 19.
[JAVA]백준 3425번: 고스택 https://www.acmicpc.net/problem/3425 3425번: 고스택 각각의 입력값에 대해서, 해당하는 프로그램을 수행한 뒤, 출력값을 출력하면 된다. 출력값이란 스택에 저장되어 있는 숫자이다. 만약, 프로그램 에러가 발생하거나, 모든 수행이 종료됐을 때 www.acmicpc.net 1. 문제 설명 창영이가 스택을 변형해서 고 스택을 만들었다. 스택에 가장 위에 저장된 수를 첫 번째 수, 그다음은 차례대로 두 번째 수, 세 번째 수라고 할 때 NUM X : X를 스택 가장 위에 저장 POP : 스택 가장 위의 숫자 제거 INV : 첫번째 수의 부호를 바꾼다 DUP : 첫번째 숫자를 하나 더 스택의 가장 위에 저장 SWP : 첫번째 수와 두 번째 수 위치 바꿈 ADD : 첫번쨰 수와 두 번.. 2021. 7. 19.
[JAVA]백준 2346번: 풍선 터뜨리기 https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 첫째 줄에 자연수 N(1≤N≤1,000)이 주어진다. 다음 줄에는 차례로 각 풍선 안의 종이에 적혀 있는 수가 주어진다. 편의상 0은 적혀있지 않다고 가정하자. www.acmicpc.net 1. 문제 설명 N개의 풍선이 있다. 풍선을 터뜨리면 풍선 안에 있는 -N ~ N 까지의 수가 적혀있는 종이를 얻을 수 있다. 그 종이에 적혀있는 값만큼 이동하여 다음 풍선을 터뜨린다면, 풍선을 터뜨리는 순서를 구하는 문제이다. 2. 풀이 2가지 방법으로 풀었다. 1. Deque 사용 - 간단하게 풀 수 있다. 주의해야 될 점은 Deque를 정의할 때 LinkedList로 정의하게 되면 메모리 초과가 발생할 수 있다는 점이다... 2021. 5. 20.
728x90