목록Algorithm (90)
꿈꾸는 개발자의 devLog
[문제 설명]https://www.acmicpc.net/problem/1697 - 수빈이는 현재 점 N에 있고, 동생은 점 K에 있음- 수빈이는 걷기나 순간이동 가능- 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 됨- 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 됨- 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구해야 함 [해결 로직]- 아주 큰 배열을 만들어놓고, 거기에 시간을 기록하는 것임 ! (가장 빠른 시간만..)- 현재 위치 기준으로, -1, +1, *2 일때의 값을 계속 큐에 넣어서 현재 위치에 적힌 시간 +1 을 이동하는 위치의 시간 값으로 기록함- 대신 이동할 때, 정해진 범위내에 있고 방..
[문제 설명]https://www.acmicpc.net/problem/14502 - 연구소에 바이러스가 유출 되었지만 아직 퍼지지 않았음- 바이러스의 확산을 막기 위해 연구소에 벽을 세우려고 함- 연구소는 크기가 NxM인 직사각형, 이는 1X1 크기의 정사각형으로 나누어져 있음- 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지함- 일부 칸은 바이러스가 존재, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져 나갈 수 있음- 새로 세울 수 있는 벽은 3개이며, 꼭 3개를 세워야 함 !!2 0 0 0 1 1 00 0 1 0 1 2 00 1 1 0 1 0 00 1 0 0 0 0 00 0 0 0 0 1 10 1 0 0 0 0 00 1 0 0 0 0 0 위와 같이 연구소가 생긴 경우- 0..
[문제 설명]https://www.acmicpc.net/problem/1417 - 다솜이는 사람의 마음을 읽을 수 있는 기계를 가지고 있고, 국회의원 선거를 조작하려고 함- 다솜이는 기호 1번이고, 자신을 찍지 않으려는 사람을 돈으로 매수해서 국회의원에 당선이 되게 하려고 함- 다른 모든 사람의 득표수 보다 많은 득표수를 가질 때, 국회의원에 당선됨- 예를 들어, 1번이 5표, 2번이 7표, 3번이 7표 라고 한다면, 다솜이는 2번 후보 선택한 사람 1명과, 3번 후보 선택한 사람 1명을 돈으로 매수하면 국회의원에 당선이 됨- 다솜이가 매수해야 하는 사람의 최솟값 출력 [해결 로직]- 사실 우선 순위 큐 문제를 많이 풀어본게 아니라서 다른 블로그를 참고함- 일단, 최소 우선순위 큐의 형태인 힙큐를 사용함..

[문제 설명]https://www.acmicpc.net/problem/2194 - 스타크래프트와 같은 게임을 하다 보면 어떤 유닛을 목적지까지 이동시켜야 하는 경우가 종종 발생- 편의상 맵을 NxM 크기의 2차원 행렬로 가정- 각각의 유닛은 크기를 가지는데, 이를 AxB 크기의 2차원 행렬로 가정- 아래는 5x5 크기의 맵과 2x2 크기의 유닛에 대한 한 예시임 (S는 시작점, E는 끝점을 나타냄)- 유닛은 상하좌우의 네 방향으로만 움직일 수 있음- 단, 유닛의 앞부분이 장애물이 설치된 부분을 지날 경우 (색이 칠해진 부분), 위의 예에서는 시작위치에서 위로 이동하는 경우가 허용되지 않음- 위의 예는 유닛을 오른쪽으로 3칸, 위쪽으로 3칸 움직이면 목적지에 도달 - 이때, 최소 이동 횟수를 출력 - 이..

[문제 설명] https://www.acmicpc.net/problem/1890 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net - NxN 게임판에 수가 적혀져 있음 - 목표 : 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 나감 - 각 칸에 적혀 있는 수는 현재 칸에서 갈수 있는 거리를 의미 - 반드시 오른쪽이나 아래쪽으로만 이동 - 0은 더 이상 진행을 막는 종착점, 항상 현재 칸에 적혀있는 수만큼 가야함 - 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 이..
[문제 설명] https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 문자열 S가 주어졌을 때, 단어만 뒤집으려고 함. 아래와 같은 규칙을 지킴 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 있다. 문자열의 시작과 끝은 공백이 아니다. ''가 문자열에 있는 경우 번갈아가면서 등장하며, '

[문제 설명] https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 지렁이는 배추 근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호 어떤 배추에 지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동 가능, 배추들 역시 해충으로부터 보호 받을 수 있음 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해 있는 것임 서로 인접해 있는 배추들이 몇 군데에 퍼져있는지 조사하면 총 몇 마리의 지렁이가 필요한 지 알 수 있음 예를 들어,..

[문제 설명] https://www.acmicpc.net/problem/21314 21314번: 민겸 수 민겸 수 하나가 주어진다. 민겸 수는 대문자 M과 K로만 이루어진 문자열이며, 길이는 3,000을 넘지 않는다. www.acmicpc.net 민겸 수는 한 개 이상의 민겸 숫자를 이어붙여 만듦 민겸 수를 십진수로 변환할 때는, 1개 이상의 민겸 숫자로 문자열을 분리한 뒤, 각각의 민겸 숫자를 십진수로 변환해서 순서대로 이어붙이면 됨 민겸 수는 여러 가지 십진수로 변환 가능 주어진 민겸 수가 십진수로 변환되었을 때 가질 수 있는 값 중 가장 큰 값과 가장 작은 값을 두 줄로 나누어 출력 [해결 로직] - 사실! 이해 안갔음 ! 왜 그리디인지..도대체 어떻게 해야할지 감이 아예 안잡혀서..ㅠㅠ 다른 블로..