본문 바로가기

[Algorithms]

(38)
BOJ. 20056번. 마법사 상어와 파이어볼 이번주는 상어문제들을 종합적으로 풀어보기로 했다. 구현문제들은 주로 조건에 따라 코드만 세심하게 살펴 짜면 통과받는데는 크게 어려움이 없다. ( 코드가 이쁘지 않은것이 함정;; ) www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.uti..
BOJ. 6593번. 상범빌딩 이제 DFS,BFS에 대한 간단한 문제들은 자리를 잡은 느낌이다. 이번 문제도 간단한 BFS문제였고, 2차원 배열에서 돌아가는 일반 문제와 달리 3차원 공간이라 재미있었다. 하지만 결국은 축이 하나 더 들어간 노가다;; 그리고 출력하는 문자가 틀릴 경우 바로 틀렸다고 안뜨고, 33%쯤에서 뜬다;;; 조심하자! www.acmicpc.net/problem/6593 6593번: 상범 빌딩 당신은 상범 빌딩에 갇히고 말았다. 여기서 탈출하는 가장 빠른 길은 무엇일까? 상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져있다. 각 정육면체는 금으로 이루어져 있어 www.acmicpc.net package week5; import java.io.BufferedReader; import java.io..
BOJ. 17406번. 배열 돌리기 4 이전과 달라진 점은, 순열에 대한 부분과, 회전를 시키는 위치를 지정하게끔 변경된 것이다. 따라서 순열의 경우의 수를 구하고, 각 경우마다 회전 연산을 수행하여, 각 연산에 따른 결과를 갱신하는 방법으로 문제를 해결했다. www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; ..
BOJ. 16935번. 배열 돌리기 3 문제에서 원하는 회전에 대한, 각각의 연산을 수행해 주면 된다. www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamW..
BOJ. 16927번. 배열 돌리기 2 1번에 비해 달라진 점은, 일정 횟수 이상 회전이 반복되면 처음과 동일해지므로, 그에 대한 처리를 해주면 된다. www.acmicpc.net/problem/16927 16927번: 배열 돌리기 2 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStrea..
BOJ. 16926번. 배열 돌리기 1 배열돌리기 문제를 1~4까지 풀어보았다. 당연히 붙은 번호가 높아질수록 난이도도 다소 올라간다. 배열 조작에 익숙해지는 재미가 있었다. www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java...
BOJ. 10799번. 쇠막대기 쇠막대기 문제는 전형적인 스택을 활용한 문제이다. 짝이 맞을 경우에, 끄트머리 부분을 추가해 주면 간단하게 풀이할 수 있다. java언어를 사용하면서 stack 라이브러리를 처음 사용해 보았다. www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stack; // 스택 라이브러리 사용할 때 import public class M..
BOJ. 2615번. 오목 요즘 SSAFY과정을 들으면서 Java언어에 익숙해지기 위해, 다양한 알고리즘 문제를 Java로 풀이하는 연습을 하고 있다. 2주전쯤 풀었던 문제인데, 지금 보니 입출력등 미숙해 보이는 부분이 많다;; www.acmicpc.net/problem/2615 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 2615번 오목 문제는 차례로 NxN matrix의 좌표를 순서대로 접근하면서, 5목이라면 좌표상 가장 왼쪽 바둑돌을 출력하면 되는 간단한 문제다. case를 나누어 풀면 해결할 수 있지만, 발생가능한 예외(6목..