From 3cd6162f44ce17f8a52ea7e89a2258fa0efbfeda Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Fri, 6 Dec 2024 00:23:04 -0600 Subject: [PATCH] fix: invert logic --- 05/PrintQueue/UpdateValidator.cs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/05/PrintQueue/UpdateValidator.cs b/05/PrintQueue/UpdateValidator.cs index 8c8351f..d5fd516 100644 --- a/05/PrintQueue/UpdateValidator.cs +++ b/05/PrintQueue/UpdateValidator.cs @@ -21,28 +21,30 @@ class UpdateValidator Graph[rule.X].Add(rule.Y); } } - + + // NOTE: This is basically a bubble sort + // public Update Sort(Update update) { var sortedUpdate = new Update(update.Pages.ToList()); - + while (Validate(sortedUpdate) is false) { for (var i = 0; i < sortedUpdate.Pages.Count - 1; i++) { var currentPage = sortedUpdate.Pages[i]; var nextPage = sortedUpdate.Pages[i + 1]; - - if (IsOutOfOrder(currentPage, nextPage) is false) + + if (IsInOrder(currentPage, nextPage)) { continue; } - + sortedUpdate.Pages[i] = nextPage; sortedUpdate.Pages[i + 1] = currentPage; } } - + return sortedUpdate; } @@ -52,7 +54,7 @@ class UpdateValidator foreach (var page in update.Pages) { - if (previousPages.Any(previousPage => IsOutOfOrder(previousPage, page))) + if (previousPages.Any(previousPage => IsInOrder(previousPage, page) is false)) { return false; } @@ -63,9 +65,9 @@ class UpdateValidator return true; } - private bool IsOutOfOrder(int previousPage, int futurePage) + private bool IsInOrder(int previousPage, int futurePage) { return Graph.TryGetValue(previousPage, out var dependents) && - dependents.Contains(futurePage) is false; + dependents.Contains(futurePage); } } \ No newline at end of file