ALGORITHM (212) 썸네일형 리스트형 백준 21611 마법사 상어와 블리자드 (Java) 1. 문제 링크 https://www.acmicpc.net/problem/21611 21611번: 마법사 상어와 블리자드 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, ( www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 칸의 번호를 적어두는 배열을 만들었지만 옮기는 부분에서 막혀서 번호별로 좌표를 넣었다. numbers는 칸 번호, map은 구슬 번호를 저장한 배열이다. 이후 M번의 마법을 진행한다. magic은 마법을 시전하는 함수 4-1. 반복문으로 중간의 상어 위치에서 해당 방향으로 거리만큼 가면서 구슬 번호를 0으로 바꾼다. mov.. 백준 4949 균형잡힌 세상 (Java) 1. 문제 링크 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 균형잡힌 문자열인지 판단하는 것으로 Stack을 사용했다. 열린 괄호와 닫힌 괄호 각각에 대해 조건을 걸어서 균형이 맞지 않다면 끝이다. 끝까지 균형이 맞았을 경우에는 스택에 남은 것이 없는지 확인하여 결과를 출력했다. 4. 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stack.. 백준 2310 어드벤처 게임 (Java) 1. 문제 링크 2310번: 어드벤처 게임 입력은 여러 개의 미로로 주어진다. 각 미로의 첫 줄에는 미로의 방 수를 나타내는 정수 n(1 ≤ n ≤ 1000)이 주어진다. 다음 n 줄에는 각 방의 정보가 주어진다. 각 방의 정보는 방의 내용물을 나타 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 Connect로 연결된 방을 이었고, Room으로 각 방의 정보를 표시했다. 1번방부터 BFS로 n번에 도착하게 했다. 문제의 테케가 꽤나 많이 부족하다. 소지금도 들고 다녀야 되는데 안 들고 다녔는데도 통과했다..왜? 코드는 일단 올리지만, 소지금도 재방문도 전부 고려하지 않았다는 점.. 언제 틀렸다고 바뀔지 모른다는 점... 4. 코드 import java.io.BufferedReade.. 백준 2178 미로 탐색 (Java) 1. 문제 링크 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 bfs 탐색 방식으로 문제를 풀었다. 최소 칸을 구해야 하기 때문에 큐의 크기를 구해 한 번의 횟수에 갈 수 있는만큼만 큐에서 빼서 처리했다. 미로의 끝에 도달한다면 종료한다. 4. 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; import java.io.IOExcept.. 백준 9019 DSLR (Java) 1. 문제 링크 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 입력받은 숫자를 큐에 넣고 bfs 탐색으로 진행한다. 큐에 들어간 숫자를 꺼내서 D, S, L, R 연산을 하고 각자 큐에 넣는다. 큐에 넣은 수는 최소 횟수를 위해 방문 표시를 합니다. 문자로 하기에는 0으로 시작할 경우가 애매해서 숫자로 풀었다. 나왔던 숫자는 방문 처리를 통해 다시 방문하지 않도록 한다. 4. 코드 import java.io.BufferedReader; import jav.. 백준 11000 강의실 배정 (Java) 1. 문제 링크 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 1. 우선순위 큐를 이용해서 시작 시간 기준 정렬하고, 시작이 같은 경우에는 종료 기준으로 정렬했다. 2. 강의실에 배정 받은 수업을 통과 큐에 넣고 큐 안의 수업과 비교했다. 3. 통과 큐에 아무것도 없거나, 통과 큐 안의 것보다 시작 시간이 앞이라면 통과큐에 넣는다. (새로운 강의실) 4. 통과 큐 안의 것보다 시작 시간이 크거나 같은 경우에는 통과 큐 안의 것과 바꿔치기한다. (비교 대상을 지금 수업으로 바꿈) 4. 코드 import java.io... 백준 1516 게임 개발 (Java) 1. 문제 링크 1516번: 게임 개발 첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 번호가 주어진다. 건물의 번호는 1부 www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 위상정렬을 이용해서 푸는 문제이다. 진입 차수를 이용해서 큐에 넣는 타이밍을 정한다. dp를 이용해 더 큰 경우를 저장한다. 4. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; .. 백준 16916 봄버맨 2 (Java) 1. 문제 링크 16919번: 봄버맨 2 첫째 줄에 R, C, N (1 ≤ R, C ≤ 200, 1 ≤ N ≤ 109)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net 2. 문제 및 입출력예제 3. 문제 풀이 규칙이 있는 문제이다. (N이 1인 경우를 제외하고는) 4의 배수로 규칙이 발견되는데 N 나누기 4의 나머지에 4를 더한 값이 N이 된다. N이 되기 전까지 폭탄을 설치하고 시간 체크하고 폭발하는 폭탄을 전부 큐에 넣어두고 시간을 체크한다. 여기서 폭탄을 큐에 넣는 이유는 폭탄이 모두 동시에 폭발하기 때문이다. 폭발은 큐에 넣은 것들을 하나씩 빼면서 방문 여부에 체크를 해준다. 4. 코드 import j.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 27 다음