SWEA 6855. 신도시 전기 연결하기 (C++) #include #include using namespace std;int N, K;int x[1000001];int dis[1000000];int main(){ int tc; scanf("%d", &tc); for (int t = 1; t 1. N개의 집 중에서 K개의 발전소를 꼭 설치해야함2. 그럼 나머지 N - K개는 꼭 전선의 길이를 가지게 됨3. 각 전선의 길이를 배열에 담아놓음4. 오름차순 정렬 후 N - K개만 더해보리기5. 끝 공부/SWEA 2024.05.14
SWEA 3408. 세가지 합 구하기 (C++) #include long long N;int main(){ int tc; scanf("%d", &tc); for (int t = 1; t 공식만 알면 쉽게 푸는 문제 공부/SWEA 2024.05.12
SWEA 8104. 조 만들기 (C++) #include int N, K;int group[21];int main(){ int tc; scanf("%d", &tc); for (int t = 1; t 공부/SWEA 2024.05.11
SWEA 4371. 항구에 들어오는 배 (C++) #include int N;int happyday[5001];int visited[5001];int main(){ int tc; scanf("%d", &tc); for (int t = 1; t 공부/SWEA 2024.05.11
SWEA 20019. 회문의 회문 (C++) #include #include using namespace std;string s;int main(){ int tc; scanf("%d", &tc); for (int t = 1; t > s; for (int i = 0; i 공부/SWEA 2024.05.11
SWEA 20934. 방울 마술 (C++) #include int K, cpos;char cup[3];void solve(){ for (int i = 0; i 1. 방울 울린 횟수만큼 방울이 있는 컵을 섞는다2. 현재 방울이 있을 확률이 가장 높은 컵이 여러개라면 가장 왼쪽에 있는 컵이라고 하니깐 가운데에 방울이 있다면 왼쪽으로 섞는다3. 끝 공부/SWEA 2024.05.11
SWEA 4615. 재미있는 오셀로 게임 (C++) #include int N, M, turn;int othello[10][10];int dx[8] = { -1, 1, 0, 0, -1, 1, -1, 1 };int dy[8] = { 0, 0, 1, -1, 1, 1, -1, -1 };void stemp(int dir, int target_x, int target_y, int x, int y, int turn){ int sx = x, sy = y; while (true) { if (sx == target_x && sy == target_y) break; else { othello[sy][sx] = turn; sx += dx[dir]; sy += dy.. 공부/SWEA 2024.05.10
SWEA 3282. 0/1 Knapsack (C++) #include using namespace std;int N, K;int V[101], C[101];int bag[101][1001];int main(){ int tc = 0; cin >> tc; for (int t = 1; t > N >> K; for (int i = 1; i > V[i] >> C[i]; } for (int i = 1; i j) bag[i][j] = bag[i - 1][j]; else bag[i][j] = max(bag[i - 1][j], bag[i - 1][j - V[i]] + C[i]); } } .. 공부/SWEA 2024.05.10
SWEA 19113. 식료품 가게 (C++) #include int N;long long food[201];int main(){ int tc = 0; scanf("%d", &tc); for (int t = 1; t 공부/SWEA 2024.05.10
SWEA 9839. 최고의 쌍 (C++) #include int N, max;int num[1001];bool visited[1001];bool check(int n){ int a = n % 10; bool flag = true; while (n / 10 > 0) { n = n / 10; if (n % 10 == a - 1) a--; else { flag = false; break; } } return flag;}void solve(int depth, int n){ if (depth == 2) { if (max 1. dfs로 모든 경우의 수 확인2. 곱셈의 결과가 max.. 공부/SWEA 2024.05.08