백준 13300: 방 배정
https://www.acmicpc.net/problem/13300 #include using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); int n, k; int arr[2][6] = {}; int s, g; cin >> n >> k; for (int i = 0; i > s >> g; arr[s][g - 1]++; } int sum = 0; for (int i = 0; i < 2; i++) { for (int j = 0; j < 6; j++) { if (arr[i][j] % k == 0) sum += arr[i][j] / k; else sum += ((arr[i][j] / k) + 1); } }..
2024.01.19
백준 3273: 두 수의 합
https://www.acmicpc.net/problem/3273 #include using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); int n; int arr[100003] = {}; // check위한 배열 int nums[100003] = {}; // 입력되는 배열 저장 cin >> n; for (int i = 0; i > k; nums[i] = k; arr[k]++; } int x; cin >> x; int sum = 0; for (int i = 0; i 0 && x - nums[i] < 100000 && arr[x - ..
2024.01.19
백준 1475: 방 번호
https://www.acmicpc.net/problem/1475 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, k; int arr[10]; fill(arr, arr + 10, 0); cin >> n; while (n != 0) { arr[n % 10]++; n /= 10; } int max = (arr[6] + arr[9] + 1) / 2; for (int i = 0; i < 10; i++) { if (i == 6 || i == 9) continue; if (max < arr[i]) max = arr[i]; } cout
2024.01.17
백준 2577번: 숫자의 개수
https://www.acmicpc.net/problem/2577 #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int result = 1, k; int arr[10]; fill(arr, arr + 10, 0); //배열 0으로 초기화 for (int i = 0; i > k; result *= k; } while (result != 0) //1의 자리수를 확인하고 10으로 나누기 { arr[result % 10]++; result /= 10; } for (int i = 0; i < 10; i++) cout
2024.01.17
배열/리스트
배열: 메모리 상에 원소를 연속하게 배치한 자료구조 배열의 특징 1. k번째 원소를 O(1)에 확인/변경 가능. 2. 추가적으로 소모되는 메모리의 양(=overhead)가 없음. 3. 메모리 상에 붙어있어 cache hit rate가 높음. 4. 메모리 상에 연속한 구간을 잡아야 해서 할당에 제약이 걸림. 5. 임의의 위치에 원소를 추가/ 임의의 위치의 원소를 제거 = O(n). 리스트: 하나의 노드에 다음 위치의 주소를 함께 저장하여 연결한 자료구조 리스트의 특징 1. k번째 원소를 O(k)에 확인/변경 가능. 2. 임의의 위치에 원소를 추가/ 임의의 위치의 원소를 제거 = O(1) (단, 임의의 위치의 주소를 아는 경우) 3. 메모리 상에 연속해있지 않아 cache hit rate 가 낮지만, 할당이..
2024.01.17