Skip to product information
Programmers Coding Test Problem Solving Strategies for Jobs and Careers: Java Edition
Programmers Coding Test Problem Solving Strategies for Jobs and Careers: Java Edition
Description
Book Introduction
Core concepts, solutions to 79 problems selected by Programmers, and even PCCP preparation!
A practical coding test problem-solving guide that will get you one step closer to passing.


Coding tests are an essential gateway to developer employment and career changes! How should you prepare? This book covers all the essential knowledge needed for coding tests, including time complexity, arrays, strings, sorting, binary search, exhaustive search, hashes, dynamic programming, and frequently-used data structures.
It goes beyond simply solving problems; it helps you analyze the problem, check the requirements, implement the design using various approaches, and complete the problem-solving thought process.
In addition to solving basic problems, we also cover key concepts and various solutions, so you can make the problem you just solved 100% your own.
It contains a selection of problems that contain the know-how of programmers, and you can understand Java more deeply through Java-style problem solving and solutions.
Finally, you can develop a sense of real-world experience by solving mock exam problems from the Kakao Blind Test and the Coding Proficiency Certification (PCCP) using what you learned in the book.
If you're preparing for a coding test for employment or a career change, start with this book.
  • You can preview some of the book's contents.
    Preview

index
Chapter 1.
Coding test

1.1 What is a coding test?
1.2 Why take a coding test?
_1.2.1 Viewing the problem-solving process
_1.2.2 Same results, fast and efficient
1.3 Coding and Debugging
_1.3.1 Well-written code
_1.3.2 Common mistakes made when writing code
_1.3.3 Debugging and Reducing Trial and Error
_1.3.4 Design and write code yourself

Chapter 2.
Time complexity

2.1 What is time complexity?
_2.1.1 Big O notation
_2.1.2 Time complexity graph
_2.1.3 Algorithm with available time complexity depending on the number of input data
2.2 Calculating Time Complexity
_2.2.1 Guessing
_2.2.2 How to reduce time complexity
_2.2.3 Considering time complexity when using multiple algorithms

Chapter 3.
arrangement

3.1 Understanding Two-Dimensional Arrays
_3.1.1 One-dimensional array + one-dimensional array
_3.1.2 Understanding Two-Dimensional Arrays
3.2 Handling two-dimensional arrays
_3.2.1 Two-dimensional array application
[Problem 01] Creating a Star at the Intersection - Level 2
[Problem 02] Triangular Snail - Level 2
_3.2.2 How to determine direction with dx and dy
[Problem 03] Checking Social Distancing - Level 2
_3.2.3 Operation
[Problem 04] Matrix Multiplication - Level 2

Chapter 4.
string

4.1 What is a string?
_4.1.1 Characteristics of strings
_4.1.2 Thinking about strings in a different way
[Problem 05] Reversing Natural Numbers into an Array - Level 1
[Problem 06] The Strange Caesar Cipher - Level 1
[Problem 07] Creating Strange Characters - Level 1
4.2 Handling Strings
_4.2.1 Applying Strings
[Problem 08] String Compression - Level 2
_4.2.2 Changing the base
[Problem 09] Ternary Reversal - Level 1
[Problem 10] Repeating Binary Conversion - Level 2
_4.2.3 Find and Replace
[Problem 11] Number of p and y in a string - Level 1
[Problem 12] Number Strings and English Words - Level 1
4.3 Regular Expressions
[Problem 13] String Handling Basics - Level 1
[Question 14] New ID Recommendation - Level 1

Chapter 5.
recursion

5.1 What is recursion?
_5.1.1 Breaking out of the for statement
_5.1.2 Remember the maximum scope and limits of recursion
5.2 Defining recursion
_5.2.1 Defining States
_5.2.2 Termination Conditions
_5.2.3 Ignition
5.3 Writing Code
_5.3.1 Converting Code
_5.3.2 Solving various problems
[Problem 15] Counting after Quad Compression - Level 2
[Question 16] Tower of Hanoi - Level 3
[Problem 17] Vowel Dictionary - Level 2

Chapter 6.
Fully explored

6.1 What is exhaustive search?
_6.1.1 State and State Transition Progress
_6.1.2 Types of exhaustive searches
_6.1.3 Visit Processing
6.2 Solving various problems
[Problem 18] Mock Test - Level 1
[Problem 19] Carpet - Level 2
[Problem 20] Formula Maximization - Level 2
[Problem 21] Finding Prime Numbers - Level 2
[Problem 22] Bad User - Level 3

Chapter 7.
array

7.1 What is alignment?
_7.1.1 Setting the sorting criteria
_7.1.2 Improving sorting efficiency
7.2 Sorting
_7.2.1 Using the default criteria
[Problem 23] Kth Number - Level 1
[Problem 24] Pick Two and Add - Level 1
[Problem 25] H-Index - Level 2
_7.2.2 Setting your own criteria
[Problem 26] Arranging strings in descending order
[Problem 27] ​​Arrange Strings Any Way You Want - Level 1
[Problem 28] Largest Number - Level 2
[Question 29] Menu Renewal - Level 2

Chapter 8.
binary search

8.1 What is binary search?
_8.1.1 Advantages of Binary Search
_8.1.2 Conditions under which binary search can be used
8.2 Improving Search Efficiency
_8.2.1 Divide and Conquer
_8.2.2 Setting sorting criteria
8.3 Binary search methods in Java
8.4 Solving various problems
[Problem 30] Rank Search - Level 2
[Question 31] Immigration - Level 3
[Problem 32] Stepping Stones - Level 4

Chapter 9.
Hash

9.1 What is a hash?
_9.1.1 Hash Table
_9.1.2 Time Complexity of Hashing
9.2 Solving various problems
[Problem 33] Parallel - Level 0
[Problem 34] Removing Duplicate Characters - Level 0
[Problem 35] Making B from A - Level 0
[Problem 36] Adding Missing Numbers - Level 1
[Question 37] Athletes Who Did Not Finish - Level 1

Chapter 10.
dynamic programming

10.1 Dynamically reducing operations
_10.1.1 Problems with Exhaustive Search
_10.1.2 Memoization, the core of 'dynamic programming'
_10.1.3 Conditions for dynamic programming
_10.1.4 Bonus: Implementing Sequential Accumulation
10.2 Solving various problems
[Problem 38] Fibonacci Numbers - Level 2
[Problem 39] Integer Triangle - Level 3
[Problem 40] School Road - Level 3
[Problem 41] Arithmetic Operations - Level 4

Chapter 11.
Frequently appearing data structures

11.1 Stacks and Queues
_11.1.1 Stack
[Problem 42] Correct Parentheses - Level 2
[Problem 43] Rotating Parentheses - Level 2
[Problem 44] Stock Prices - Level 2
_11.1.2 Queue
[Problem 45] Function Development - Level 2
[Problem 46] Truck Crossing the Bridge - Level 2
_11.1.3 Deck
11.2 Graphs and Trees
_11.2.1 Graph
[Question 47] Ranking - Level 3
[Problem 48] Number of Rooms - Level 5
_11.2.2 Trees and Binary Trees
[Problem 49] Pathfinding Game - Level 3
11.3 Data structures that appear when you forget them
_11.3.1 Priority Queue 467
[Problem 50] Dual Priority Queue - Level 3441
[Problem 51] Disk Controller - Level 3
_11.3.2 Two Pointers473
[Problem 52] Jewelry Shopping - Level 3
_11.3.3 Union Find
[Problem 53] Connecting Islands - Level 3
[Problem 54] Hotel Room Assignment - Level 4
_11.3.4 Try
[Problem 55] Lyrics Search - Level 4

Chapter 12.
avatar

12.1 Things to watch out for
_12.1.1 Why is this a difficult problem to implement?
_12.1.2 Debugging Faster
12.2 Make it as discussed in the problem
_12.2.1 Finding Rules
_12.2.2 Solving various problems
[Question 56] Skill Tree - Level 2
[Problem 57] Keypad Pressing - Level 1
12.3 Solving based on exhaustive search
_12.3.1 Depth-First Search (DFS)
_12.3.2 DFS: Stack
[Problem 58] Target Number - Level 2
[Problem 59] Network - Level 3
_12.3.3 Breadth-First Search (BFS)
_12.3.4 BFS: Queue
[Problem 60] Word Conversion - Level 3
[Question 61] Game Map Shortest Distance - Level 3
12.4 Greedy Algorithm
_12.4.1 Best in current circumstances
_12.4.2 Is it the best result?
_12.4.3 Solving various problems
[Problem 62] Gym Uniform - Level 1
[Problem 63] Creating Large Numbers - Level 2
[Problem 64] Speed ​​Camera - Level 3

Chapter 13.
Challenge: Kakao 2022 Blind Test

[Problem 65] Receiving Report Results - Level 1
[Problem 66] Finding the Number of Prime Numbers in Base K - Level 2
[Problem 67] Parking Fee Calculation - Level 2
[Question 68] Archery Competition - Level 2
[Problem 69] Sheep and Wolf - Level 3
[Question 70] Undestructed Building - Level 3
[Problem 71] Disappearing Platform - Level 3

Chapter 14.
Coding Proficiency Certification Exam, PCCP Mock Exam

14.1 PCCP Mock Exam 1 time
[Problem 72] The Lonely Alphabet - Level 1
[Problem 73] Sports Competition - Level 2
[Problem 74] The Laws of Heredity - Level 2
[Problem 75] Operating System - Level 3
14.2 PCCP Mock Exam 2 times
[Problem 76] Robotics for Practice - Level 1
[Problem 77] New Employee Training - Level 2
[Question 78] Cafe Expansion - Level 2
[Question 79] Treasure Map - Level 3

Detailed image
Detailed Image 1

Publisher's Review
Analyze the problem, check the requirements,
Implementing the design using various approaches
Complete the flow of thought that solves the problem!

1.
A selection of past questions from programmers who have completed numerous coding tests!

We've selected 79 problems from among those that reflect the expertise of programmers with a cumulative 770,000 applicants, 20,000 cumulative tests, and over 1,500 corporate clients.

2.
Learn through 'Problem Analysis → Requirements Identification → Approach Selection → Step-by-Step Implementation'!

It is designed to allow you to experience the process of solving actual coding test problems, and helps you complete the thought process for solving problems.

3.
Approach with various solutions!

There is not one solution to the problem, but many.
In addition to solving basic problems, the book also covers key concepts and various solutions, allowing you to make the problems you just solved 100% your own.

4.
Java-like problem solving and solution techniques!

Explains problem solving and solutions suitable for the Java language.
Furthermore, you can gain a deeper understanding of Java and explore the direction and process of programming.

5.
Includes two Kakao Blind Tests and PCCP Mock Exams!

You can develop a practical sense of the exam by solving problems from the Kakao 2022 blind test and two PCCP mock exams using what you learned in the book.

[Beta Review]

I think being a developer is a job that requires constant learning.
Among them, I think algorithm is one of the very important elements.
Reading this book gave me the opportunity to review the basics.
In particular, I have taken coding tests several times, and it was fun to solve them again because there were similar types of questions that appeared on the exam.
It contains a lot of explanations and codes needed to prepare for coding tests, so I think it will be very helpful for those preparing for employment.
Noh Seung-ju | Front-end developer

This book covers various types of problems that appear in coding tests and first explains the basic concepts that can help you solve them.
Even content that may be somewhat difficult is explained in an easy-to-understand way based on basic principles and concepts.
I think this is the best book for preparing for actual coding tests, as it covers not only solving coding problems but also optimal time complexity and space complexity, which are often missed in other coding books.
I highly recommend this to students preparing for employment through coding tests and to office workers preparing to change jobs.
Lee Jeong-woo | Google Software Engineer

If you are preparing for a coding test and primarily use Java, this is the book I would recommend.
There are many different solutions to solving a problem.
But I think the important thing in testing and competitions is to quickly realize whether applying such a solution will solve the problem.
Because coding incorrectly without thinking about the solution can lead to a worse outcome than giving up on the problem.
After reading this book, you will find yourself going from being a PS beginner who just starts writing code to an expert who solves problems in his head and then starts coding.
Also, since it is not a simple problem-solving book, but a book that teaches you how to think in Java, I highly recommend reading it if you are preparing for a job in Java.
Choi Hyun-kyung | Kakao Games Backend Engineer

This is a good book to read when you are curious about how to solve Javadown problems.
It will be very helpful for coding tests that need to be implemented quickly, as it clearly explains the basic libraries that can be utilized for each problem type.
I especially liked the part that explained the time complexity of the basic libraries, which are easy to miss if you don't look for them.
This will allow you to calculate the time complexity of your code more precisely and design efficient algorithms.
Chae Sang-wook | Samsung Electronics Developer

The books I had previously read felt far removed from actual coding tests.
First, the content was good, but the coverage was low and the questions were easy.
Second, in most cases, the competition involved problems that did not appear in actual coding tests.
Also, for backend developers, Java is their main language, but it was always a shame that there was no problem-solving method suited to Java.
This book covers a large number of problems that appear in actual coding tests, along with corresponding Java-style problem-solving strategies and techniques.
I think this will be a good milestone for those preparing for coding tests in Java.
Choi Beom-seok | Naver Cloud Software Engineer
GOODS SPECIFICS
- Date of issue: February 23, 2023
- Page count, weight, size: 668 pages | 1,198g | 183*235*26mm
- ISBN13: 9791140702916
- ISBN10: 1140702912

You may also like

카테고리