## GitHub - minje46/Problem_Solving: Solve the bunch of algorithm problems.

Algorithm Match "Breadth-first search" Search through common Data Structures and Algorithms that you know and see if any of them could be "plugged-in" to solve the problem. It's a "Solution Looking for a Problem", but it can work! Problem_Solving. Solve the bunch of algorithm problems. Some problems on each level (step by step) Each numbered problems of diverse algorithm. Goal. Solve the algorithm problem everyday at least one since Get A+ score on SW Expert test. Special problems. These problems were so hard to solve or it was handled with special(new) concept of. The answer is Algorithm. In the real world we use algorithm for problem solving techniques. The importance of algorithm can not be undermined. Algorithm is solely responsible for driving technical revolution in the past decade. Algorithm depends upon the time and space complexity. Good algorithms take less time and memory to perform a task.

## 4. Problem Solving and Algorithms

Learn a basic process for developing a solution to a problem. Nothing in this chapter is unique to using a computer to solve a problem. This process can be used to solve a wide variety of problems, including ones that have nothing to do with computers. I have a problem! I need to thank Aunt Kay for the birthday present she sent me. I could send a thank you note through the mail. I could call her on the telephone. I could send her an email message.

I could drive to her house and thank her in person. In fact, there are many ways I could thank her, but that's not the point, *problem solving algorithm*. The point is that I must decide how I want to solve the problem, and use the appropriate tool to implement carry out my plan.

The postal service, the telephone, the internet, and my automobile are tools that I can use, but none of these actually solves my problem. In a similar way, a computer does not solve problems, it's just a tool that I can use to implement my plan *problem solving algorithm* solving the problem.

Knowing that Aunt Kay appreciates creative and unusual things, I have decided to hire a singing messenger to deliver my thanks. In this context, **problem solving algorithm** messenger is a tool, but one that needs instructions from me.

I have to tell the messenger where Aunt Kay lives, what time I would like the message to be delivered, and what lyrics I want sung. A computer program is similar to my instructions to the messenger. The story of Aunt Kay uses a familiar context to set the stage for a useful point of view concerning computers and computer programs, *problem solving algorithm*.

The following list summarizes the key aspects of this point of view. A computer program is a set of instructions for a computer. These instructions describe the steps that the computer must follow to implement a plan.

This point of view sets the stage for a process that we will use to develop solutions to Jeroo problems. The basic process is important because it can be used to solve a wide variety of problems, **problem solving algorithm**, including ones where the solution will be written in some other programming language.

**Problem solving algorithm** are many ways to write an algorithm. Some are very informal, some are quite formal **problem solving algorithm** mathematical in nature, *problem solving algorithm*, and some are quite graphical.

The instructions for connecting a DVD player to a television are an algorithm. The form is not particularly important as long as it provides *problem solving algorithm* good way to describe and check the logic of the plan. The development of an algorithm a plan is a key step in solving a problem. Once we have an algorithm, we can translate it into a computer program *problem solving algorithm* some programming language.

Our algorithm development process consists of five major steps. This step is much more difficult than it appears. In the following discussion, the word client refers to someone who wants to find a solution to a problem, and the word developer refers to someone who finds a way to solve the problem. The developer must create an algorithm that will solve the client's problem. The client is responsible for creating a description of the problem, but this is often the weakest part of the process, **problem solving algorithm**.

It's quite common for a problem description to suffer from one or more of the following types of defects: 1 the description relies on unstated assumptions, 2 the description is ambiguous, 3 the description is incomplete, **problem solving algorithm**, or 4 the description has internal contradictions.

These defects are seldom due to carelessness by the client. Instead, they are due to the fact that natural languages English, French, *problem solving algorithm*, Korean, etc. Part of the developer's responsibility is to identify defects in the description of a problem, and to work with the client to remedy those defects. The purpose of this step is to determine both the starting and ending points for solving the problem.

This process is analogous to a mathematician determining what **problem solving algorithm** given and what must be proven. A good problem description makes it easier to perform this step. When determining the starting point, we should start by seeking answers to the **problem solving algorithm** questions:. **Problem solving algorithm** determining the ending point, we need to describe the characteristics of a solution. In other words, *problem solving algorithm*, how will we know when we're done?

Asking *problem solving algorithm* following questions often helps to determine the ending point. An algorithm is a plan for solving a problem, *problem solving algorithm*, but plans come in several levels of detail. It's usually better to start with a high-level algorithm that includes the major part of a solution, but leaves the details until later.

We can use an everyday example to demonstrate a high-level algorithm. This algorithm is satisfactory for daily use, but it lacks details that would have to be added were a computer to carry out the solution, **problem solving algorithm**. These details include answers to questions such as the following. A high-level algorithm shows the major steps that *problem solving algorithm* to be followed to solve a problem. Now we need to add details to these steps, but how much detail should we add?

Unfortunately, the answer to this question depends on the situation. We have to consider who or what is going to implement the algorithm and how much that person or thing already knows how to do. If someone is going to purchase Mark's birthday card on my behalf, my instructions have to be adapted to whether or not that person is familiar with the stores in the community and how well the purchaser known my brother's taste in greeting cards.

When our goal is to develop algorithms that will lead to computer programs, we need to consider the capabilities of the computer and provide enough detail so that someone else could use our algorithm to write a computer program that follows the steps in our algorithm.

As with the birthday card problem, we need to adjust the level of detail to match the ability of the programmer. When in doubt, or when you are learning, it is better to have too much detail than to have too little. Most of **problem solving algorithm** examples will move from a high-level to a detailed algorithm in a single step, but this is not always reasonable.

For larger, more complex problems, it is common to go through this process several times, developing intermediate level algorithms as we go. Each time, we add more detail to the previous algorithm, stopping when we see no benefit to further refinement, **problem solving algorithm**.

This technique of gradually working from a high-level to a detailed algorithm is often called stepwise refinement. The final step is to review the algorithm, **problem solving algorithm**. What are we looking for? First, we need to work through the algorithm step by step to determine whether or not it will solve the original problem. Once we are satisfied that the algorithm does provide a solution to the problem, we start to look for other things. The following questions are typical of ones that should be asked whenever we review an algorithm.

Asking these questions and seeking their answers is a good way to develop skills that can be applied to the next problem. Does this algorithm solve a very specific problem or does it solve a more general problem?

If it solves a very specific problem, should it be generalized? For example, an algorithm that computes the area of a circle having radius 5. Is this solution similar to the solution to another problem? How are they alike? How are they different? This section contains an extended example that demonstrates the algorithm development process. To complete the algorithm, we need to know that every Jeroo can hop forward, turn left and right, pick a flower from its current location, and plant a flower at its current location.

A Jeroo starts at 0, 0 facing *Problem solving algorithm* with no flowers in its pouch. There is a flower at location 3, 0. Write a program that directs the Jeroo to pick the flower and plant it at location 3, 2. After planting the flower, the Jeroo should hop one space East and stop. There are no other nets, flowers, or Jeroos on the island. The high-level algorithm partitioned the problem into three rather easy subproblems, **problem solving algorithm**.

This seems like a good technique. This **problem solving algorithm** solves a very specific problem because the Jeroo and the flower are in very specific locations. This algorithm is actually a solution to a slightly more general problem in which the Jeroo starts anywhere, and the flower is 3 spaces directly ahead of the Jeroo.

A good programmer doesn't write a program all at once. Instead, the programmer will write and test the program in a series of builds. **Problem solving algorithm** build adds to the previous one. The high-level algorithm will guide us in this process. To see this solution in action, create a new Greenfoot4Sofia scenario and use the Edit Palettes Jeroo menu *problem solving algorithm* to make the Jeroo classes visible.

Right-click on the Island class and create a new subclass with the name of your choice. This subclass will hold your new code. The instantiation at the beginning of myProgram places bobby at 0, 0facing East, with no flowers. Once the first build is working correctly, we can proceed to the others. In this case, each build will correspond to one step in the high-level algorithm.

It may seem like a lot of work to use four builds for such a simple program, but doing so helps establish habits that will become invaluable as the programs become more complex. This *problem solving algorithm* adds the logic to "get *problem solving algorithm* flower", which in the detailed algorithm step 4 above consists of hopping 3 times and then picking the flower.

The new code is indicated by comments that wouldn't appear in the original they are just here to call attention to the additions.

The blank lines help show the organization of the logic.

### Algorithm-Solving Strategies - Learneroo

Another type of strategy is an algorithm. An algorithm is a problem-solving formula that provides you with step-by-step instructions used to achieve a desired outcome (Kahneman, ). You can think of an algorithm as a recipe with highly detailed instructions that . Aug 14, · When solving a problem, choosing the right approach is often the key to arriving at the best pillsreviewi.gq psychology, one of these problem-solving approaches is known as an algorithm. An algorithm is a defined set of step-by-step procedures that provides the . The answer is Algorithm. In the real world we use algorithm for problem solving techniques. The importance of algorithm can not be undermined. Algorithm is solely responsible for driving technical revolution in the past decade. Algorithm depends upon the time and space complexity. Good algorithms take less time and memory to perform a task.