일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 후니의 쉽게 쓴 시스코 네트워킹
- 그리디
- Kotlin
- 플로이드-와샬
- 알고리즘
- 수학
- 스택
- 완전탐색
- 구현
- 백트래킹
- 유니온 파인드
- 세그먼트 트리
- 문자열
- dfs
- 동적계획법
- 이분탐색
- 시뮬레이션
- JUnit 5
- Effective Java
- 에라토스테네스의 체
- mst
- BFS
- 투 포인터
- 프로그래머스
- 위상정렬
- java
- swea
- CS
- 백준
- Network
목록구현 (108)
반갑습니다!
1063번: 킹 www.acmicpc.net 풀이 방향을 미리 map에 저장해두고 문제의 조건에 맞춰 구현하였다. 문제를 잘 읽는 습관을 기르자 코드 #include #include using namespace std; bool inRange(char x, char y) { return ('A' s2 >> n; char kx = s1[0], ky = s1[1], sx = s2[0], sy = s2[1]; for (int i = 0; i > tmp; int x = map[tmp].first; int y = map[tmp].second; // 킹이 이동할 수 없는 경우 if (!inRange(kx + x, ky + y)) continue; // 킹이 돌의 ..
17779번: 게리맨더링 2 www.acmicpc.net 풀이 구현하기가 상당히 까다롭다. 모든 경우를 확인하여 해결하였다. 문제에 명시된 d1, d2 ≥ 1, 1 ≤ x < x+d1+d2 ≤ N, 1 ≤ y-d1 < y < y+d2 ≤ N 조건을 만족하는 d1과 d2를 찾아서 구역을 나눴다. #include #include #include using namespace std; int n; int map[21][21]; bool line[21][21]; int area[5]; int countArea(int x, int y, int d1, int d2) { memset(line, 0, sizeof(line)); memset(area, 0, sizeof(area)); // 왼쪽 아래 방향으로 내려가는 경계..
2407번: 조합 www.acmicpc.net 풀이 조합을 구현하는 문제이다. nCm = n-1Cm + n-1Cm-1 이라는 규칙이 있기 때문에 동적계획법으로 쉽게 구현할 수 있다. 하지만 이 문제는 long long 범위를 벗어나기 때문에 string으로 정수를 구현하여 해결하였다. 코드 #include #include using namespace std; string dp[101][101]; string addTwoNumber(string num1, string num2) { long long sum = 0; string result; while (!num1.empty() || !num2.empty() || sum) { if (!num1.empty()) { sum += num1.back() - '0'..
17837번: 새로운 게임 2 www.acmicpc.net 풀이 새로운 게임과 거의 유사한 문제이다. 새로운 게임에서는 맨 아래에 있는 말만 움직일 수 있었지만, 이번엔 모든 말이 움직일 수 있다. 기본적인 구현은 새로운 게임과 유사하게 구현하여 해결하였고, 다른 말 위에 올라가있는 말을 이동하는 부분은 iterator를 사용하여 구현하였다. #코드 #include #include #include using namespace std; struct Knight { int x, y, dir; }k[11]; int N, K; int map[13][13]; vector list[13][13]; const int dx[] = { 0, 1, -1, 0, 0 }, dy[] = { 0, 0, 0, -1, 1 }, ba..
17780번: 새로운 게임 www.acmicpc.net 풀이 체스판을 배열로 구현하고, 각 칸을 vector를 사용하여 맨 아래에 있는 말부터 차례로 쌓이도록 구현하여 해결하였다. 코드 #include #include #include using namespace std; struct Knight { int x, y, dir; bool canMove; }k[11]; int N, K; int map[13][13]; vector list[13][13]; const int dx[] = { 0, 1, -1, 0, 0 }, dy[] = { 0, 0, 0, -1, 1 }, back[] = { 0, 2, 1, 4, 3 }; int moveKnight(int idx) { int nx = k[idx].x + dx[k[id..