본문 바로가기

전체 글

1034 램프 고민고민하다가 다른 사람 풀이 참고했다. 결국 같은 패턴이 몇 개인지 세고, 같은 패턴의 개수가 많은 걸 선택하면 됐었다. 해당 패턴이 불을 다 켤 수 있는지 확인해주고.. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() #define MAX 987654321 using namespace std; using i64 = long long int; using.. 더보기
18917 수열과 쿼리 38 보면 배열을 딱히 안 만들어도 됐었다. 더하고 빼면 되고 xor도 같은 수를 한번 더 xor하면 원래대로 돌아오는 성질이 있다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() #define MAX 987654321 using namespace std; using i64 = long long int; using ii = pair; using iis = p.. 더보기
15565 귀여운 라이언 투포인터로 왔다갔다 풀었다 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() #define MAX 987654321 using namespace std; using i64 = long long int; using ii = pair; using iis = pair; using ii64 = pair; using iii = tuple; int main() { i.. 더보기
2410 2의 멱수의 합 #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second using namespace std; using i64 = long long; using ii = pair; using ii64 = pair; #define MOD 1000000000 int ans; int dp[1000005]; int main() { int n; scanf("%d", &n); dp[0] = 1; for (int two = 1; two 더보기
2251 물통 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using iis = pair; using ii64 = pair; using iii = tuple; bool visited[205][205][205]; struct bottle { int a,.. 더보기
10971 외판원 순회 2 https://www.youtube.com/watch?v=cdPBs_EsHbc 분명 알고리즘 수업 떄 들었는데? 기억이 안 나서 위 유튜브 보면서 다시 공부했다. 아.. 이런거였지 싶음. 그런데 NP인데?? DP로도 하기 어려운데 어떻게 풀지?? 다행히 n이 10 이하였다. 그래서 재귀로 하나씩 확인했다. #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second using namespace std; using i64 = long long; using ii = pair; using ii64 = pair; bool visited.. 더보기
1992 쿼드트리 풀었다. 내가해냄 #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second using namespace std; using i64 = long long; using ii = pair; using ii64 = pair; int arr[100][100]; void solve(int n, int x, int y) { if (n == 1) { printf("%d", arr[x][y]); return; } bool isOne = true, isZero = true; for (int i = 0; i < n; i++) { for (int.. 더보기
1991 트리 순회 아 재밌다. 처음에 어떻게 하지 싶었는데 덕분에 중위 후위 전위 순회 방식 잘 알게됨 #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second using namespace std; using i64 = long long; using ii = pair; using ii64 = pair; vector adj[30]; int dot = 'Z' + 1; void preorderTraversal(int curr) { printf("%c", curr + 'A'); if (adj[curr][0] != dot) { preorderTrave.. 더보기