public class TechInterviewTip {
// 승지니어 : https://www.youtube.com/watch?v=-kKQZlAJo0Y
// 1. Refine requirement
public List<String> fineNamesFromMovieScript(String movieScript) {
// abstract
// Does input only contains alphabetic characters?
// ignore cases?
// Should I consider same name be represented in various forms? (Michael == Mike)
// Can I think that the number of characters is limited? (Complexity)
return null;
}
// 2. The utility method could be assumed.
public List<String> permutateString(String input) {
// e.g : input ab
// result : [ab, Ab, aB, AB]
// Character.toLowerCase(char c)
// Character.toUpperCase(char c)
// I can solve this with backtracking.
// I know that language support case conversion of character.
// But I don't exactly remember how to use that method.
// Can I assume that?
return null;
}
// 3. Be proactive to communicate, and request hint if you needed
public void veryDifficultQuestion() {
// Even if the problem is difficult, you have to think about how to solve it, and communicate with it
// Communicate with interviewers about the logical process from the start.
// If you don't totally know how to solve it, request hints politely.
// Request another problems if you don't know.
}
// 4. If the problem is too complicated, then approach from a small part
// If there are 3~4 parts to solve, then solve it one by one.
public class SudokuSolver {
public SudokuSolver(char[][] board) {
}
public char[][] solveSudoku() {
return null;
}
// I am going to create validation method for sudoku, then solve it with backtracking
// I am going to implement validation method first.
public boolean isValidSudoku(char[][] board) {
return true;
}
}
// 5. Be confident and patient.
// Tech-interview 1 session : 50 m ~ 1 H
// Time flies somehow
// Try to show you something even if you can't solve it
// Ask questions appropriate ,or try to solve a small part.
}