이 문제가 나한테서 검증하고 싶은게 뭘까?
저는 항상 이 마인드로 접근을 합니다 :)
세상에 존재하는 모든 문제, 테스트들은 검증을 하고자 하는게 있고 결과를 원합니다.
그 중 에서도 많은 기업들에서 코딩 테스트를 보게 하는 이유는 분명히 존재합니다. 여러분들의 실력이 혹시는 구라가 아닌지 ㅋ
+ 이 사람이 문제 해결을 잘 하는지.
그래서 문제를 읽어보고 제일 먼저 생각이 들어야 하는 것은....
1. 이 문제에서 주어진 값들로 어떤 결과가 나오면 될까?
말 그대로 매개변수를 가지고 어떤 결과를 만들면 되는 것인가? 이것을 제일 먼저 파악해야 합니다.
2. 구하기 위해서는 어떤 자료구조와 알고리즘이 필요한가?
여기서부터가 중요합니다. 구해야 하는 결과를 알았다면 일단 어떤 자료구조를 쓰는게 효율적이면서 정확한지 파악해야 합니다.
예를 들면 중복 자료를 제거해서 담아야 한다면 -> Set, HashMap 등
Index개념을 활용해야 한다면 -> ArrayList, LinkedList 등
자료구조를 처음에 잘 선택함으로써 알고리즘적으로 몇가지 문제들은 이미 해결한거나 다름 없을것 입니다.
그다음으로 어떻게 풀어야할까? 에 대해서 접근해봐야 합니다. 이 때 본인이 알고 있는 알고리즘들이 몇가지 생각날텐데 그것을 잘 활용하는게 매우 중요합니다.
완전탐색으로 총 경우의 수를 구한다 -> Brute Force, DPS 등
정렬을 해야한다 -> 퀵정렬, 분할정복 등
그리고 무조건 문제를 풀기전에 종이든 아이패드든 어딘가에 과정을 적어보십쇼 !
생각보다 매우 중요합니다.
무작정 머리에 생각나는대로 바로 달려들어버리면 결과값을 구했을때 만약 내가 생각했던거와 다른 값이 나온다. 그러면 다시 거꾸로 생각해보고, 이상이 없는데 라는 생각이 드는 순간 망합니다....
무조건 처음에 차근차근 어딘가에 정리하면서 문제를 해결해보시고, 그다음에 코드로 작업을 하는게 개인적으로 훨씬 정확도가 높다고 생각 듭니다 :)
728x90
'프로그래머스 코딩 테스트' 카테고리의 다른 글
프로그래머스 Level2 가장 큰 수 - Java 풀이 (0) | 2023.02.23 |
---|