분류 전체보기
-
SWEA 4012번: [모의 SW 역량테스트] 요리사Problem Solving/SWEA 2020. 5. 17. 22:02
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeUtVakTMDFAVH SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 쉬운 문제이당 해당 그림같은 식재료의 조합이 있을 때, 이를 두 진영으로 나누어 시너지를 더한 값의 차가 최소가 되는 경우를 찾는 문제이다 그래서 bool 배열을 사용해서 0은 A음식, 1은 B음식 진영으로 나누고 dfs를 사용해서 해당 depth의 식재료를 0과 1의 경우의 수로 재귀 호출했다 (N이 16이하의 작은 수이기 때문에 가능하다) 진영 나누기를 완료했을 때, 각각 진영의 시너지를 전부 ..
-
SWEA 4013번: [모의 SW 역량테스트] 특이한 자석Problem Solving/SWEA 2020. 5. 17. 21:58
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeV9sKkcoDFAVH SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 백준에서의 톱니바퀴?와 똑같은 문제이당 위와 같은 그림이 있을 때, 특정 번호의 자석을 돌리면 해당 자석과 맞닿아있는 자석의 극이 다를 때 반대 방향 회전을 한다 해당 그림에서 2번 자석을 반시계방향으로 회전하면 1번 자석과는 다른 극이 맞닿아있기 때문에 1번 자석은 시계방향 회전, 3번 자석과는 같은 극이 맞닿아있기 때문에 회전하지 않는다 해당 상태에서 3번 자석을 회전시키면 같은 원리로 2번과 ..
-
SWEA 4014번: [모의 SW 역량테스트] 활주로 건설Problem Solving/SWEA 2020. 5. 13. 23:44
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeW7FakkUDFAVH SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 백준의 경사로 문제와 똑같은 문제!! 제약사항 체크만 잘 해주면 풀 수 있당 경사로 문제의 알고리즘은 간단하다 1. 현재 칸과 다음 칸의 높이가 같은지 검사한다 -> 모두 일정하다면 count++ 2. 다른 칸이 있다면 오르막길인지 내리막길인지 구한다 3. 오르막길이라면 cur부터 왼쪽으로 X칸을 높이가 같은지 검사하고, 아니라면 break 4. 내리막길이라면 cur+1부터 오른쪽으로 X칸을 높이가..
-
Quick Sort 정의, 알고리즘 및 코드에 대해Algorithm 2020. 5. 13. 18:38
Quick Sort란, Divide And Conquer 방식을 사용하는 정렬 알고리즘이다 Merge Sort와 함께 많이 쓰이면서, 시간 복잡도가 O(nlog n)으로 실용적이고 빠르다 🤗 1️⃣ Array의 Size가 1이면 해당 Array를 return 2️⃣ Size가 2 이상이면 pivot element를 하나 정한다 3️⃣ A1을 Array에서 pivot보다 작은 element, A2를 Array에서 pivot과 크기가 같은 element, A3를 A에서 pivot보다 큰 element를 담은 Array로 Divide한다 4️⃣ A1, A2, A3를 Quick Sort한 다음 return된 A1, A2, A3 순서대로 이어 붙인다(Conquer and Merge) 위와 같이 Divide 해준 ..
-
SWEA 5644번: [모의 SW 역량테스트] 무선 충전Problem Solving/SWEA 2020. 5. 13. 00:13
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRDL1aeugDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 모의 역테 문제 중 비교적 쉬운 편이었던 문제 그림과 같이 AP는 고유의 거리와 성능을 가지고 있고, 그 범위는 겹칠 수 있다 A와 B 두 단말기의 초기 위치와 이동 경로를 주어졌을 때, 충전량을 구하는 문제이다 이 때, 경우의 수를 크게 두 개로 나눌 수 있다 1️⃣ A와 B가 위치한 BC 범위가 겹칠 때 2️⃣ A와 B가 위치한 BC 범위가 겹치지 않을 때 2번은 두 위치의 최대 충전량을 각각 ..
-
SWEA 5650번: [모의 SW 역량테스트] 핀볼 게임Problem Solving/SWEA 2020. 5. 11. 01:35
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 핀볼게임은 단순한 완전탐색 문제!! 빈칸은 0, 맵 중간의 블록들은 1~5, 웜홀은 1쌍마다 6~10의 번호를 가진다 핀볼이 움직이면서 벽 혹은 블록에 부딪힐 때마다 점수를 얻을 때, 최대 점수를 획득 가능한 경우를 구하는 문제 이 문제에서는 벽은 5번 블록으로 정해서 벽과 블록의 충돌처리를 동일하게 해주었다 각각의 블록은 입력 인덱스와 출력 인덱스를 전처리 해주었다 ex. block[k][i] =..
-
SWEA 5648번: [모의 SW 역량테스트] 원자 소멸 시뮬레이션Problem Solving/SWEA 2020. 5. 9. 21:10
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRFInKex8DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 원자 소멸 시뮬레이션은 2차원 좌표에 있는 원자들이 고유한 방향과 에너지를 가지고 있을 때, 충돌을 통해 소멸하는 원자들의 에너지의 총 합을 구하는 문제이다 (1,0)과 (4,0)은 (2.5,0)에서 만나기 때문에, 위치 좌표가 정수 범위를 벗어난다(처음에 이 고민에서 막혔다) 그렇기 때문에 좌표계를 * 2 해주어야 한다 또한, 마이너스 좌표에 접근 불가능하기 때문에 +1000을 해주어야 한다 결국..
-
[C++] Dijkstra Algorithm with Priority QueueProgramming/C++ 2020. 5. 7. 22:38
다익스트라 알고리즘은 가중치가 양수로만 이루어져 있는 무방향/방향 그래프에서 최단거리를 찾는 알고리즘이다 (unweighted 그래프의 경우는 BFS로 최단거리를 탐색 가능하다) 알고리즘은 다음과 같다🤗 1️⃣ 임의의 출발점 u에서부터 최단거리를 저장할 배열 dist[vertex]를 선언하고 dist[u]에는 0을, 다른 노드들에는 INF를 저장한다 2️⃣ 출발점 u를 현재 노드(cur)로 저장한다 3️⃣ cur와 인접한 노드(next)에 대해 dist[cur] + edge[cur][next]와 dist[next]를 비교한다 4️⃣ 둘 중 최솟값을 dist[next]에 갱신한다(INF일 경우 전자의 값으로 한다) 5️⃣ cur와 인접한 모든 노드에 대해 이 작업을 수행한다 6️⃣ cur의 상태 배열 vi..