일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- DP
- 프로그래머스
- SWEA
- Level 3
- 코드 리뷰
- c++
- 부스트코스
- 2020 KAKAO BLIND
- 시뮬레이션
- 백트래킹
- next_permutation
- Gold 4
- 백준
- Level 4
- BFS
- Web
- 브루트포스
- 그리디
- level 1
- 2020 카카오 인턴십
- Level 2
- 2019 KAKAO BLIND
- 스택/큐
- pass
- 삼성 SW 역량 테스트
- 코드리뷰
- DFS
- Gold 5
- 월간 코드 챌린지
- 구현
- Today
- Total
목록알고리즘/SWEA (20)
Min:D's Devlog
문제 SWEA 모의 SW 역량테스트 - 5648 원자 소멸 시뮬레이션 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 원자들이 소멸되면서 방출하는 에너지의 총합을 구하는 문제이다. 이 문제는 공개된 테스트 케이스가 2개밖에 없어서 정답률이 17.72% 밖에 안 되는 문제였다. 그래서 문제를 풀 때 예외를 찾기가 어려워 난항을 겪었던 문제였다. 그래도 댓글에 테스트 케이스를 제공해주신 분들이 있어서 많은 도움이 되었다. 이 문제는 크게 3가지 방법으로 문제를 풀어보고자 노력하였다. 첫 번째로 시도한 방법은 원자가 충돌하는 경우를 구해서 그때의 에너지들을 모두 더하는 방식으로 구현하였다. 원자..
문제 SWEA 모의 SW 역량테스트 - 2477 차량 정비소 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 주어진 접수 창구 번호와 정비 창구 번호를 이용한 고객들의 고객 번호의 합을 구하는 문제이다. 이 문제는 주어진 조건들을 고려하여 그대로 구현하는 시뮬레이션 문제였다. 그래서 4가지 과정을 통해 문제를 해결하였다. 1. 접수 대기열 추가 현재 시간에 온 고객들을 접수 대기열에 넣어주었다. 접수 대기열을 큐로 구현하여 방문한 순서대로 사용할 수 있도록 해주었다. 2. 접수 & 수리 대기열 추가 접수 대기열에 고객이 있고, 접수 창구가 빈 창구일 경우에 대기열에 있는 고객을 접수 창구로..
문제 SWEA 모의 SW 역량테스트 - 5653 줄기세포배양 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 K시간 후 살아있는 줄기 세포의 총개수를 구하는 문제이다. 이를 구하기 위해 우선 cell이라는 구조체를 만들어서 위치(x, y)와 생명력 수치(X), 현재 남은 생명력 수치(t)를 저장해주었다. struct cell { int x; int y; int X; int t; }; 그리고 배양 시간의 최댓값은 300 시간이고, 배양 용기의 초기 크기는 최대 50 × 50이다. 즉, 생명력 수치가 1인 세포가 번식하는 데 걸리는 시간은 총 2시간으로, 300시간 동안에는 상하좌우로 150만..
문제 SWEA 모의 SW 역량테스트 - 5656 벽돌 깨기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 구슬로 벽돌을 깨서 남은 벽돌의 개수가 최솟값이 되는 경우를 구하는 문제이다. 우선, 구슬을 놓을 위치를 정하기 위해 DFS 함수를 만들어주었다. DFS 함수는 위치를 정해 shoot 함수를 시행하였고, 모든 구슬을 쏘았을 때, 남은 벽돌의 개수를 구하는 방식으로 구현하였다. shoot 함수는 큐를 활용하여 터져야 하는 블록들을 저장하고, 큐 내에 존재하는 블록들을 모두 터뜨린 후, 블록들 간의 빈 공간을 제거해주는 과정을 수행하도록 구현하였다. 빈 공간은 아래에서부터 0의 위치를 세..
문제 SWEA 모의 SW 역량테스트 - 2105 디저트 카페 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 대각선 방향으로 움직이며 사각형을 그리며 출발한 카페로 돌아오는 루트에서 디저트가 겹치지 않는 경로 중 가장 긴 경로를 찾는 문제이다. 어느 방향으로 움직이던 사각형을 그리기만 하면 되기 때문에 시계 방향으로 탐색을 진행하였다. 그리고 가장 윗 모서리에서부터 시작하여 사각형을 그리도록 구현할 것이기 때문에 사각형을 그릴 수 있는 시작 위치는 양 옆이 한 칸 이상 존재하고 아래로 2칸 이상이 존재해야 한다. 이를 고려하여 시작 위치를 한정하였고, 시작 위치에서 DFS 방식으로 탐색하여..
문제 SWEA 모의 SW 역량테스트 - 5650 핀볼 게임 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 핀볼 게임판에는 위의 이미지와 같이 블록 5종류와 웜홀, 블랙홀이 존재한다. 문제의 조건에 맞게 코드를 짜면 되는 시뮬레이션 문제였는데, 조건들이 많아서 까다로운 문제였다. 우선 게임판을 입력받으며, 웜홀의 위치를 따로 저장해주었다. (처음에는 위치를 저장해주지 않고, 웜홀을 만날 때마다 이중 for문으로 탐색하는 방식으로 구현했었는데, 위치를 vector나 map으로 따로 저장해주는 게 더 빠르다.) 그리고 go 함수에 모든 위치와 모든 방향을 넣어 탐색하여, 해당 게임판에서 얻을 ..
문제 SWEA 모의 SW 역량테스트 - 2112 보호 필름 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 이 문제는 주어진 보호 필름이 성능검사에 통과하기 위해 최소 몇 번의 약품을 투입해야 하는지 찾는 문제이다. 성능 검사는 보호 필름의 모든 세로 방향에 대해서 동일한 특성의 셀들이 K개 이상 연속적으로 존재해야 통과할 수 있고, 약품 투입을 하게 되면 해당 가로 방향이 모든 같은 특성으로 바뀌게 된다. 약품을 K회 투입하면 무조건 성능검사를 통과할 수 있다. 왜냐하면 같은 특성의 약품을 연속적으로 K회 넣어주면, 무조건 모든 세로 방향에 대해 동일한 특성의 셀이 K개 이상 연속되기 때..
문제 SWEA 모의 SW 역량테스트 - 5658 보물상자 비밀번호 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 주어진 문자열을 4등분하여 만들 수 있는 모든 16진수를 10진수로 바꿔 K번째로 큰 수를 구하는 문제이다. 문자열 한 칸씩 이동시키며 가능한 문자열을 모두 찾아주어야하기 때문에 아래와 같이 코드를 작성하였다. 아래의 코드에서 M은 문자열의 총 길이를 4로 나눈 값을 의미하며, n에 M개의 문자를 넣고, 이를 DEC 함수를 이용하여 10진수의 값으로 바꿔 answer 벡터에 넣어주었다. for (int i = 0; i < M; i++) { for (int j = 0; j < 4..
문제 SWEA 모의 SW 역량테스트 - 5644 무선 충전 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 두 사람이 충전기(BC)가 설치된 지역을 돌아다니면서 얻게되는 충전량의 최댓값을 구하는 문제이다. 같은 충전기를 사용하면 충전량은 각각 반으로 나눠지기 때문에 이를 고려하여 문제를 해결해야한다. 우선, map을 3차원 벡터로 만들어서 각 BC의 충전 범위에 P(성능, 충전량)를 표시해주었다. 이 충전 범위는 이전 문제였던 홈 방범 서비스에서의 서비스 영역과 같은 모양이어서 이때 작성했던 2중 for문을 활용하였다. [SWEA][모의 SW 역량테스트][C++] 2117 홈 방범 서비스 ..
문제 SWEA 모의 SW 역량테스트 - 2117 홈 방범 서비스 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 손해를 보지 않으면서 가장 많은 집을 포함하는 방범 서비스 영역에 포함된 집의 개수를 구하는 문제이다. 이를 구하기 위해 5중 for문을 돌며 최댓값을 구해주었다. 첫 번째 for문은 서비스 영역의 크기(k)를 나타낸다. 서비스 영역이 도시를 다 덮을 수 있을 만큼의 크기까지 확인해봐야 하기 때문에, K = 1에서 K = N + 1의 크기까지 탐색해주었다. (풀이 코드에서 k = K - 1, 즉 k = 0에서 k = N까지 탐색) 두 번째와 세 번째 for문은 서비스 영역의 가운..