diff --git a/src/main.c b/src/main.c index 89a2e5a..e5eb701 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: reasuke +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/10 12:37:36 by reasuke #+# #+# */ -/* Updated: 2024/01/12 16:09:00 by reasuke ### ########.fr */ +/* Updated: 2024/01/12 16:17:17 by reasuke ### ########.fr */ /* */ /* ************************************************************************** */ @@ -36,7 +36,7 @@ int main(int argc, char **argv) if (is_invalid_argument(argc, argv)) exit_with_error(); stack_a = generate_stack(argc, argv); - if (argc < 4) + if (argc < 5) nano_sort(stack_a, argc); ft_lstclear(&stack_a, free); return (0); diff --git a/src/nano_sort.c b/src/nano_sort.c index d7a0a40..8b8a568 100644 --- a/src/nano_sort.c +++ b/src/nano_sort.c @@ -6,7 +6,7 @@ /* By: reasuke +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/12 15:58:22 by reasuke #+# #+# */ -/* Updated: 2024/01/12 16:08:17 by reasuke ### ########.fr */ +/* Updated: 2024/01/12 16:17:00 by reasuke ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,6 +23,33 @@ static void _handle_2(t_list *stack) ft_putendl_fd("sa", STDOUT_FILENO); } +static void _handel_3(t_list *stack) +{ + int first; + int second; + int third; + + first = ft_atoi(stack->content); + second = ft_atoi(stack->next->content); + third = ft_atoi(stack->next->next->content); + if (first == 2 && second == 1 && third == 3) + ft_putendl_fd("sa", STDOUT_FILENO); + else if (first == 3 && second == 2 && third == 1) + { + ft_putendl_fd("sa", STDOUT_FILENO); + ft_putendl_fd("rra", STDOUT_FILENO); + } + else if (first == 3 && second == 1 && third == 2) + ft_putendl_fd("ra", STDOUT_FILENO); + else if (first == 1 && second == 3 && third == 2) + { + ft_putendl_fd("sa", STDOUT_FILENO); + ft_putendl_fd("ra", STDOUT_FILENO); + } + else if (first == 2 && second == 3 && third == 1) + ft_putendl_fd("rra", STDOUT_FILENO); +} + void nano_sort(t_list *stack, int argc) { int num_of_element; @@ -30,4 +57,6 @@ void nano_sort(t_list *stack, int argc) num_of_element = argc - 1; if (num_of_element == 2) _handle_2(stack); + else if (num_of_element == 3) + _handel_3(stack); }