danbibibi
article thumbnail
SWEA 5650번: 핀볼 게임
문제 풀이/SWEA 2023. 5. 13. 19:21

문제 문제 바로가기> SWEA 5650번: 핀볼 게임 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 크게 3가지를 고려해주었다. 1. simulation 시, 빈칸의 좌표만 따로 담아 둘 것인지? 그냥 2중 for문을 돌면서 빈칸을 찾을 것인가? 빈칸의 좌표를 따로 담아둘 경우, 저장 공간은 더 사용하지만, 조금 더 속도를 높일 수 있을 것 같다는 생각이 들었지만, 빈칸이 많은 경우, 저장 공간 + 속도 측면에서 모두 별로라고 판단해서 100*100이기 때문에 그냥 2중 for문을 도는 것을 선택했다. 2. 웜홀을 어떻게 쌍을 지어줄 것인지 웜홀이 2개가 쌍으로 들어오기 때문에, vector의 pair..

article thumbnail
SWEA 2382번: 미생물 격리
문제 풀이/SWEA 2023. 4. 3. 16:17

문제 문제 바로가기> SWEA 2382번: 미생물 격리 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 .... 정말... 국어를 잘해야한다. 주의할 점 1. 군집이 동시에 움직인다. 처음에 번호순서대로 움직여서 답이 이상하게 나왔다 ^^,, 이를 위해 tmpMap 배열을 이용해주었다! 2. "이동 후 두 개 이상의 군집이 한 셀에 모이는 경우 군집들이 합쳐지게 된다." 이 부분에서 구현 실수가 있었다. 예를 들어 군집 A=3, B=4, C=5라고 해보자. A, B, C 순서로 동일 칸에 도착했을 때, C의 방향이 해당 군집의 방향이 되어야 한다. 그런데 만약 A < B 이니까, B의 크기를 7 로 저장을..

article thumbnail
SWEA 2112번: 보호 필름
문제 풀이/SWEA 2023. 4. 2. 18:59

문제 문제 바로가기> SWEA 2112번: 보호 필름 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 "성능검사를 통과하기 위한 최소 약품투입 횟수"를 구하기 위해 부분 집합을 이용해 문제를 풀었다! #include #define MAX_Y 14 #define MAX_X 21 using namespace std; int Y, X, K; int ans = 0; bool film[MAX_Y][MAX_X]; void input() { cin >> Y >> X >> K; for (int i = 0; i > film[i][j]; } a..

article thumbnail
SWEA 4193번: 수영대회 결승전
문제 풀이/SWEA 2023. 4. 1. 18:26

문제 문제 바로가기> SWEA 4193번: 수영대회 결승전 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 우승 경로 (= 가장 빠른 시간 내 도착점) 에 도착해야하므로, BFS를 이용했다! 소용돌이는 2초동안 유지되다가 1초동안 잠잠해지므로, 현재시간 % 3 == 2 인 경우가 소용돌이가 잠잠해지는 경우이다! 소용돌이가 잠잠해지지 않은 경우에는 현재 위치에서 대기해야하므로, 초를 + 1 한 후, 현재 정보를 다시 queue에 넣어 주었다! #include #include #include #define MAX 16 #define EMPTY 0 #define WALL 1 // 섬과 같은 장애물 #define..

article thumbnail
SWEA 5653번: 줄기세포 배양
문제 풀이/SWEA 2023. 3. 5. 19:59

문제 문제 바로가기> SWEA 5653번: 줄기세포 배양 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 1. 배열의 범위 세포가 (비활성 + 활성) 상태를 가지므로 N+2*K가 아닌, N+K로만 잡아줘도 충분하다! 넉넉히 +1 해주는 버릇이 있다. 혹시 모르니까,, start를 K/2로 해주면, 배열의 범위를 벗어날 일은 없어서, 따로 검사해주지 않아도 된다. 2. 하나의 그리드 셀에 동시 번식하려고 하는 경우 생명력 수치가 높은 줄기 세포가 해당 그리드 셀을 혼자서 차지한다. 따라서 생명력 수치가 높은 줄기 세포부터 번식 하면 되고, 이를 위해 Priority Queue를 이용했다! 처음에 2차원 배열..

article thumbnail
SWEA 2115번: 벌꿀채취
문제 풀이/SWEA 2023. 3. 4. 17:05

문제 문제 바로가기> SWEA 2115번: 벌꿀채취 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 1. 부분집합을 이용하여, 해당 지점(y, x) 에서 얻을 수 있는 가장 큰 수익을 profit[y][x]에 저장한다. 2. 조합을 이용하여, 일꾼 두명이 얻을 수 있는 최대 수익을 구한다. JAVA import java.io.*; import java.util.*; public class Solution { static BufferedReader br = null; static int N, M, C, ans; static int[][] map, profit; static void input() throws..

article thumbnail
SWEA 5644번: 무선 충전
문제 풀이/SWEA 2023. 2. 22. 21:36

문제 문제 바로가기> SWEA 5644번: 무선 충전 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 input에서 주어진 경로를 따라 이동하면서, 다음과 같은 두 가지 경우로 나누어 문제를 해결해주면 된다. 1. 두 사용자가 동일한 위치에 있는 경우 → 또 다시 3가지 경우로 나뉜다 1) 주변에 충전 가능한 bc가 없는 경우 → continue 2) 1가지 bc를 나눠 사용해야 하는 경우 → 1개의 bc를 각각 나눠 사용한다. 어짜피 ans에 나눠서 더하나, 그 값을 더하나 같다. 3) 2가지 이상의 bc가 있는 경우 → 제일 큰 파워를 가진 두 bc를 이용한다. (나는 prioirty queue를 이용..

article thumbnail
SWEA 3234번: 준환이의 양팔저울
문제 풀이/SWEA 2023. 1. 6. 00:57

문제 문제 바로가기> SWEA 3234번: 준환이의 양팔저울 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 " 오른쪽 추의 무게