프로그래머스에서 진행하는 코딩 테스트 첼린지에 지속적으로 지원은 했지만..
지금까지 전부다 중간에 멘탈이 나가서 에라이 하는 마음으로 Ctrl + W를 갈겨왔었다...
그리고 오늘!
드디어 처음으로 정상적으로 테스트 종료 버튼을 눌렀다 ㅋㅋㅋ
물론 다 푼 건 아니고 4문제 중에 2문제를 통과했다.
4월 2문제 통과로 2/4 달성!
그리고 이렇게 도장을 두 개 받았다.
어릴적 다닌 피아노 학원에선 포도송이에 스티커를 붙여줬었는데..
암튼 5월에도 2문제를 통과해서 총 4문제 이상을 달성하면 추첨을 통해... 라고 한다.
문제에 대하여
1번은 이게 뭐야 싶을 정도로 내가 본 코딩 테스트에서 나온 문제 중 가장 쉬운 문제였다.
1등하신 분은 4문제를 모두 합해 42분만에 풀어내셨는데, 1번은 1분대에 끊어내셨다 ㅋㅋㅋ....
기본적인 배열 순회와 문자열 더하기, boolean 판별 정도만 사용하면 풀어지는 문제였다.
2번은 괄호 관련 문자열 처리 및 판별 문제였다.
마침 이틀 전부터 2020 카카오 블라인드 채용에서 출제되었던 괄호 변환 문제를 풀고 있었기에
약간은 반갑기도 했고 한 편으론 두렵기도 했다. 아직은 풀어내지 못했기 때문.
예외 케이스 하나를 제대로 잡아내지 못해서 시간이 좀 끌리긴 했지만 다행히도 결국은 풀어냈다.
3번과 4번은.. 어차피 아직 내 실력으론 풀 수 없는 문제였다...
총 시험시간 180분중 90분이 경과한 시점에 시작했는데,
어차피 3,4번은 손도 못 댈 문제라서.. 시간이 부족하지 않았다..ㅋㅋㅋㅋ
소감
문제를 풀며 느낀 것은 두 가지인데
첫째는 회사에서 배운 더 나은 코드에 대한 방향성이 도움이 되고 있다는 것이고
둘째는 남들의 문제풀이 방식을 통해 배운 것이 도움이 되고 있다는 것이다.
잘 몰랐는데 문제를 푸는 과정에서 그것이 체감됐다.
문제를 풀며 나 스스로 클린 코드에 대해 필터가 수행되는 것이 느껴졌다.
또한 다른 이들의 코딩 방식을 통해 흡수한 메소드를 분리하여 구성하는 것이 크게 도움되는 것으로 느껴졌다.
메소드를 분리하는 방식은 가독성을 높여줄 뿐만 아니라 뇌의 연산에도 도움을 주는 것 같다.
구조를 먼저 다 잡아놓고 나면 실제 로직을 구현하는 부분에만 집중할 수 있기 때문에
불필요한 뇌 메모리 점유가 줄어들기 때문이라고 나는 생각한다.
아 그리고 경험도 정말 중요한 것 같다.
어떤 문제를 풀다가 하나의 케이스에서만 자꾸 틀린 결과가 나와서 낑낑대다가
결국 예외 케이스를 찾아내서 통과한 적이 있는데,
그때 힌트로 얻게 된 게 시간은 아주 짧게 걸리면서 유별나게 에러가 나는 경우,
같은 데이터가 반복되어 들어오거나, 처음값 또는 끝값이 들어오는 경우를 의심볼 수 있다는 것이다.
그래서 아래 사진처럼 처음으로 테스트 케이스를 추가해서 테스트를 해봤는데...
역시나 단순한 예외 케이스에서 처리를 제대로 못해내고 있는 것이 확인됐고
로직에서 빈틈을 발견하여 그것을 메워내 결국 통과했다.
프로그래밍이란, 예외를 처리하는 것 이라는 누군가의 정의에 대해 시간이 갈수록 공감하게 된다.
어떤 예외가 발생할 수 있는지 미리 인지하고 그에 대응하는 것이
중요하기도 하고 그것이 곧 품질이고 실력이라고 생각된다.
1번은 너무 쉬웠던 것 같고 2번도 마찬가지다.
그에 비해 3번은 급격하게 정답자수가 줄어들었고 4번은 더욱 그러했다.
2년 뒤엔 나도 모든 문제를 풀어내리라..
'Algorithm' 카테고리의 다른 글
모의면접 복기 (1) - Hash, HashMap (완주하지 못한 선수) (0) | 2021.09.25 |
---|---|
프로그래머스 소수 찾기 (0) | 2021.05.30 |
20201026 코테 복기 : 최댓값 구하기, 두 개 뽑아서 더하기, 스킬트리, HashMap (0) | 2020.10.29 |
콜라츠 추측 (프로그래머스, Java, Level1) (0) | 2020.07.07 |
K번째 수 (프로그래머스, Java, Level1) (0) | 2020.07.07 |