📎 문제 링크https://www.acmicpc.net/problem/14431 ▸ 문제소수 마을들의 주민들은 매우 특이한 규칙을 준수한다. 규칙은 바로 “가고 싶은 위치까지의 거리가 소수일 경우에만 간다”라는 것이다. 소수 마을의 주민 승욱이는 소수 마을에서 멀리 떨어진 A마을에 볼일이 있어 그곳까지 가야한다. 소수 마을에서 A마을까지의 단숨에 가고 싶지만 안타깝게도 두 마을의 거리는 소수가 아닐 경우에는 그럴 수가 없다. 그럴 경우에는 다른 마을들을 경유하여 가야한다. (경유하는 마을도 현재 위치에서의 거리가 소수일 경우에만 갈 수 있다.) 소수 마을과 경유할 수 있는 마을들, 그리고 A마을의 위치가 좌표평면 상으로 주어질 때, 승욱이가 소수 마을의 규칙을 준수하여 A마을로 갈 수 있는 최단의 길을..
📎 문제 링크https://www.acmicpc.net/problem/11003 ▸ 문제N개의 수 A1, A2, ..., AN과 L이 주어진다.Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오.이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. ▸ 입력첫째 줄에 N과 L이 주어진다. (1 ≤ L ≤ N ≤ 5,000,000)둘째 줄에는 N개의 수 Ai가 주어진다. (-109 ≤ Ai ≤ 109) ▸ 출력첫째 줄에 Di를 공백으로 구분하여 순서대로 출력한다. 📍 문제 정보💍 문제 레벨 : 플레티넘 5🔔 문제 유형 : 자료구조, 우선순위 큐, 덱💬 풀이 언어 : JAVA 🤔 문제 풀이슬라이딩 윈도우 알고리즘을 사용해서 풀 수 있는..
📎 문제 링크https://www.acmicpc.net/problem/1497 ▸ 문제 강토는 Day Of Mourning의 기타리스트로, 다가오는 공연을 준비하고 있다.어느 날 강토의 집에 도둑이 들어서 기타를 모두 도둑맞고 말았다. 기타를 사야 한다.강토는 공연 때 연주할 노래의 목록을 뽑아 놓았다. 하지만, 하나의 기타로 모든 곡을 연주할 수는 없다. 어떤 기타는 어떤 곡을 연주할 때, 이상한 소리가 나기 때문이다. 항상 완벽을 추구하는 강토는 이런 일을 용납하지 않는다.최대한 많은 곡을 제대로 연주하려고 할 때, 필요한 기타의 최소 개수를 구하는 프로그램을 작성하시오.예를 들어, GIBSON으로 1, 2, 3번 곡을 제대로 연주할 수 있고, FENDER로 1, 2, 5번 곡을 제대로 연주할 수..
📎 문제 링크https://www.acmicpc.net/problem/1584 ▸ 문제세준이는 위험한 지역에서 탈출하는 게임을 하고 있다. 이 게임에는 세준이가 들어갈 수 없는 죽음의 구역이 있고, 들어가서 한 번 움직일 때 마다 생명이 1씩 소모되는 위험한 구역이 있다. 그리고, 자유롭게 생명의 위협없이 움직일 수 있는 안전한 구역이 있다. (안전한 구역은 죽음의 구역과 위험한 구역을 제외한 나머지 이다.)세준이는 (0, 0)에서 출발해서 (500, 500)으로 가야 한다. 세준이는 위, 아래, 오른쪽, 왼쪽으로만 이동할 수 있다. 현재 세준이는 (0, 0)에 있다. 그리고, 게임 판을 벗어날 수는 없다.세준이가 (0, 0)에서 (500, 500)으로 갈 때 잃는 생명의 최솟값을 구하는 프로그램을 작..
📎 문제 링크https://www.acmicpc.net/problem/20160 ▸ 문제야쿠르트를 외치며 잠에서 깼다. 오늘은 야쿠르트로 하루를 시작하려고 한다.야쿠르트 아줌마는 10개의 지점을 최단 시간으로 이동하며 들리신다. 각 지점에서 야쿠르트 아줌마보다 같거나 더 일찍 도착한 사람에게 야쿠르트를 팔고 바로 다음 지점으로 출발하신다. 각 지점은 정점 위에 있고 지정된 차례에만 야쿠르트를 판매한다. 야쿠르트를 파는 데 지연되는 시간은 없으며, 오직 이동 시에만 해당 도로의 가중치만큼 시간이 지연된다.야쿠르트 아줌마는 10개의 지점을 순서대로 방문하며, 10개의 지점 중 첫 번째 지점에서 출발한다. 만약 i번째 지점에서 i+1번째 지점으로 이동 가능한 경로가 없다면 i+2지점으로 이동하신다. i+2로..
🔹 투 포인터 (Two pointer)1차원 배열에서 각각 다른 원소를 가리키는 2개의 포인터를 조작해 가며 원하는 값을 찾을 때까지 탐색하는 알고리즘이다.이러한 특성 때문에, 연속되고 길이가 가변적인 부분 배열들을 활용하여 특정 조건을 일치시키는 문제에 적용 가능하다.투 포인터 알고리즘은 2가지 유형이 존재한다.2개의 포인터 변수 시작점이 배열의 시작점인 경우정렬된 배열 안에서 2개의 포인터 변수가 각각 시작점과 끝점에 위치한 경우 위에 적힌 투 포인터 알고리즘의 2가지 유형을 각각 문제를 통해 알아보자. 🔸 2개의 포인터 변수 시작점이 배열의 시작점인 경우예를 들어, 백준 2003 수들의 합 2 문제에서는 N개의 수열에서 특정 구간(i부터 j)의 합이 M이 되는 경우의 수를 알고 싶다. 먼저, 두..