728x90

전체 글 260

[SWEA 5650 - Java] 핀볼 게임

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 이 문제는 특별한 알고리즘을 적용하는 것이 중요하지는 않은 구현문제입니다!! 특히 블록에 부딪히거나 벽에 부딪힌 경우의 방향 전환과 웜홀에서 순간 이동에 주의해야합니다!!! 저는 위의 그림처럼 충돌 전 방향과 충돌 후 방향이 어떻게 변하는지를 미리 생각해두고 문제를 해결했습니다. 또한 웜홀의 경우는 ArrayList배열을 만들어 같은 숫자에 해당하는 위치들을 해당 인덱스에 저장해 두고 사용했습니다. 그런뒤 map상에서 빈칸 즉 0인 위치들에서 각각의 4가지 방향에 대해 모두 출발해 보며 최대 점수를 찾아내면 되는 문제입니다. import java.util.S..

[백준 2234 - Java] 성곽

https://www.acmicpc.net/problem/2234 2234번: 성곽 첫째 줄에 두 정수 n, m이 주어진다. 다음 m개의 줄에는 n개의 정수로 벽에 대한 정보가 주어진다. 벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, www.acmicpc.net 문제 대략 위의 그림과 같이 생긴 성곽이 있다. 굵은 선은 벽을 나타내고, 점선은 벽이 없어서 지나다닐 수 있는 통로를 나타낸다. 이러한 형태의 성의 지도를 입력받아서 다음을 계산하는 프로그램을 작성하시오. 이 성에 있는 방의 개수 가장 넓은 방의 넓이 하나의 벽을 제거하여 얻을 수 있는 가장 넓은 방의 크기 위의 예에서는 방은 5개고, 가장 큰 방은 9개의 칸으로 이루어져 있으며, 위의 그..

[SWEA 1953 - Java] 탈주범 검거

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 각각의 파이프의 상하좌우 이동가능 방향을 따로 저장해서 사용하였습니다. 또한 상하좌우의 이동 방향에 따라 다음에 진행하여 만날 수 있는 파이프의 방향이 달라야 합니다. 이 점을 정말 중요하게 고려해줘야 합니다!!!! BFS를 이용하여 다음 방향으로 이동시키면서 시간을 체크하면서 문제를 해결하면 됩니다. import java.util.*; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); f..

[SWEA 1952 - Java] 수영장

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 이 문제는 1~12월까지만 확인을 하고 이용권이 종류도 매우 적기 때문에 모든 경우를 확인해도 시간초과가 되지 않습니다! 따라서 저는 월을 기준으로 재귀를 호출하며 답을 구했습니다. answer 변수에 1년 이용권 가격을 넣어준 후 재귀 호출을 시작합니다. 1월 부터 시작하여 해당 월에 1일 이용권, 1달 이용권, 3달 이용권을 이용하는 경우들에 대해 재귀를 호출합니다. 이 때 해당 월에 수영장 출석 계획이 없다면 이용권을 결제하지 않도록 합니다. 1~12월 까지의 이용권 금액이 모두 추가된 후엔 answer의 값과 현재 까지의 요금을 비교하여 현재 요금이 ..

[SWEA 1949 - Java] 등산로 조성

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 이 문제의 경우엔 DFS 알고리즘을 이용해서 풀이하였습니다. 가장 높은 봉우리들을 모두 큐에 저장한 뒤에 하나씩 뽑으면서 각각의 봉우리에서 시작하는 등산로들을 확인해야 합니다. 이 과정에서 재귀를 이용한 DFS 알고리즘을 사용합니다. 상하좌우의 이동을 확인합니다. 범위가 벗어나거나 이미 방문한 지점의 경우엔 다시 방문 하지 않습니다. 이동하려는 곳의 높이가 더 낮은 경우엔 road+1과 이동한 위치를 가지고 dfs함수를 재귀 호출합니다. 이동하려는 곳의 높이가 현위치 이상인 경우가 중요합니다! 이 때는 k 이하로 깎아서 현위치의 높이 이하가 되며 아직 깎은 ..

[백준 11967 - Java] 불켜기

https://www.acmicpc.net/problem/11967 11967번: 불켜기 (1, 1)방에 있는 스위치로 (1, 2)방과 (1, 3)방의 불을 켤 수 있다. 그리고 (1, 3)으로 걸어가서 (2, 1)방의 불을 켤 수 있다. (2, 1)방에서는 다시 (2, 2)방의 불을 켤 수 있다. (2, 3)방은 어두워서 갈 수 없으 www.acmicpc.net 문제 농부 존은 최근에 N*N개의 방이 있는 거대한 헛간을 새로 지었다. 각 방은 (1, 1)부터 (N,N)까지 번호가 매겨져있다(2≤N≤100). 어둠을 무서워하는 암소 베시는 최대한 많은 방에 불을 밝히고 싶어한다. 베시는 유일하게 불이 켜져있는 방인 (1,1)방에서 출발한다. 어떤 방에는 다른 방의 불을 끄고 켤 수 있는 스위치가 달려있다..

[백준 1976 - Java] 여행 가자

https://www.acmicpc.net/problem/1976 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net 문제 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인지 알아보자. 물론 중간에 다른 도시를 경유해서 여행을 할 수도 있다. 예를 들어 도시가 5개 있고, A-B, B-C, A-D, B-D, E-A의 길이 있고, 동혁이의 여행 계획이 E C B C D 라..

[백준 1043 - Java] 거짓말

https://www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 문제 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 과장해서 말한다. 당연히 과장해서 이야기하는 것이 훨씬 더 재미있기 때문에, 되도록이면 과장해서 이야기하려고 한다. 하지만, 지민이는 거짓말쟁이로 알려지기는 싫어한다. 문제는 몇몇 사람들은 그 이야기의 진실을 안다는 ..

[백준 15591 - Java] MooTube (Silver)

https://www.acmicpc.net/problem/15591 15591번: MooTube (Silver) 농부 존은 1번 동영상과 2번 동영상이 USADO 3을 가지고, 2번 동영상과 3번 동영상이 USADO 2를 가지고, 2번 동영상과 4번 동영상이 USADO 4를 가진다고 했다. 이것에 기반해서 1번 동영상과 3번 동영상의 www.acmicpc.net 문제 농부 존은 남는 시간에 MooTube라 불리는 동영상 공유 서비스를 만들었다. MooTube에서 농부 존의 소들은 재밌는 동영상들을 서로 공유할 수 있다. 소들은 MooTube에 1부터 N까지 번호가 붙여진 N (1 ≤ N ≤ 5,000)개의 동영상을 이미 올려 놓았다. 하지만, 존은 아직 어떻게 하면 소들이 그들이 좋아할 만한 새 동영상을..

[백준 16918 - C++] 봄버맨

https://www.acmicpc.net/problem/16918 16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net 문제 봄버맨은 크기가 R×C인 직사각형 격자판 위에서 살고 있다. 격자의 각 칸은 비어있거나 폭탄이 들어있다. 폭탄이 있는 칸은 3초가 지난 후에 폭발하고, 폭탄이 폭발한 이후에는 폭탄이 있던 칸이 파괴되어 빈 칸이 되며, 인접한 네 칸도 함께 파괴된다. 즉, 폭탄이 있던 칸이 (i, j)인 경우에 (i+1, j), (i-1, j), (i, j+1), (i, j-1)도 함께 파괴된다. 만약, 폭탄이 폭발했을 때, ..

728x90
반응형