코딩테스트/카카오 기출

카카오 2019 블라인드 채용 코딩테스트 1번 오픈채팅방, 2번 실패율, 5번 길 찾기 게임 파이썬 해설

RyanKwon 2021. 8. 27. 00:25
728x90

오랜만에 카카오 문제 풀이이다. 지난번에 백준에 공부하려고 들어갔다가 딱 카카오 블라인드채용 원서접수가 뜨길래, 공부겸 실력체크겸 지원을 했다. 그 사이에 또 빡세게 하면 도움될테니까.. 아무튼 이번주 토요일에 현대차 소프티어 인증평가가 있어서 수요일까지만 적당히 카카오 2019문제 풀고 목금은 소프티어 지난번 인증평가 기출을 풀려고 했는데, 역시 내 실력이 아직 그닥인지 카카오 기출...어렵다.ㅋㅋ 쉽게 푼건 1,2,5번이고 4번은 풀긴 했는데 효율성테스트 통과를 못해서 다른사람 풀이를 조금참고해서 다시 풀었다. 3번은 딱 봤을때 뭔가..어려워보였는데 정답률도 낮아서 이거 내가 풀수있는거 맞나? 싶은 느낌이 들었다. 그래서 이것도  gg치고 다른사람 풀이를 참고해서 풀어봣는데 막상 푼 코드를 보니까 열몇줄..? 이 문제는 나중에 다시 얘기하겠지만 역시 코딩문제는 일단 먼저 쫄면 무조건 망한다. ㅋㅋ 일단 문제풀이 고고~

1. 오픈채팅방 문제 해설

이건 일단 딱 봐도 어려워보이진 않았다. 생각해보면 크게 들어오는 경우, 나가는 경우, 변경만 하는 경우 이렇게 세개로 나누면 되고 -이 중에서 들어오는 경우에만 두가지 경우로 다시 나뉜다. 들어오면서 새로운 닉네임을 달고 들어오는 경우, 그렇지 않는 경우. 한글을 붙여서 출력해야하니까 미리 딕셔너리에 들어오는 경우, 나가는경우를 저장해두면 된다.
사이에 아이디는 같은데 닉네임이 다른 경우에 앞쪽에 이미저장한 리스트에서도 닉네임을 변경해야하니까 미리 인덱스만 저장하는 리스트를 만들어서 닉네임은 최종 닉네임으로 출력되게 하면 끝. 아무리 쉬워도 정답률이 너무 높아서 놀랐다.ㅋㅋㅋ

2. 실패율 문제 해설

이것도 정답률이 꽤 높았던 걸로 기억한다. 이렇게 경우의수가 많지 않은 문제는 일반적으로 딱 봤을때 겁을 먹진 않게 된다. 게임의 스테이지가 1~5단계까지 있다고 치면 각 단계마다 아직 그 단계에 머물고있는 사람의 비율을 알아내야하는 문제이다. 예를 들어서 3단계에 아직 머무는 사람이 3명, 4~5단계에 진출한 사람이 2명이면 전체 5명중에 아직 3명이 3단계에 머물고 있으니까 3단계의 실패율은 3/5이다. 5명중에 3명이 아직 3단계를 못 깼으니까! 맨 처음 숫자들로 리스트 받으면 각 단계별로 몇명 있는지 확인해서 리스트에 저장해두고, 나중에 그 리스트에서 반복문을 돌면서 실패율을 계산하면 된다. 풀만한데 대신 예외처리가 꽤.. 빡세게 필요했던 문제로 기억난다. 젠장, 풀자마자 여기에 썻어야하는데 사흘정도 되니까 기억이 잘 안난다.

5. 길 찾기 게임 해설

이건 처음에 정답률이 몇퍼센트밖에 안되서 엄청 쫄았었는데 딱 보니까 전위순회 후위순회를 활용하면 되는 문제라서 정답률이 낮다는거에 좀 놀랐다. 아마도 3번문제가 앞쪽에 있는데에도 너무 어려워서 사람들이 거기서 시간을 많이 쓰고 뒤에 시간을 못쓴건가..?싶기도 하고.. 잡설은 막판에 이어서 하고 일단 문제를 풀어보겠습니다. 근데 전위순회 후위순회 이용하면 끝이라서 (..) 일단 노드가 이진노드로 구성돼서 입력받는게 아니라서 받은걸 이진노드처럼 잘.. 구성을 해야한다. 일단 순회하는것만 짜면 전위순회 후위순회는 사실상 리스트에 값 추가를 언제하느냐만 다른거라서, 순회만 짜면 거의 끝나는 문제이다. 일단 그림이 주어져서 이해하기가 쉬운데, 가장 y값이 큰 요소가 일단..무조건 부모노드이다. 당연한말ㅋ 그러니까 그 노드의 x좌표를 기준으로 그 옆에 있는 애들, 오른쪽에 있는 애들을 나눠서 탐색하면 된다. 조금 쉽게 말하면, y값이 제일 큰 요소의 x값을 기준으로 좌우 노드를 나누고, 그 나뉜 노드에서 또 가장 y값이 큰 애를 찾아서 반복! 전형적인 트리 탐색문제라서 사이에 헷갈리지만 않으면 쉽게 풀수 있을거라고 생각한다.


다시 아까 하던 얘기로 돌아가서 ㅋㅋㅋㅋ, 5번문제는 정답률이 낮아서 이게 어려운 문제였나? 잠깐 고민을 했다. 근데 그냥 카카오 지원자중에 허수가 많다는걸로 봐도 될 것 같다. 수천명 수만명 지원한다는 소문이 있던데 뭐..채용 규모가 크긴 하지만 가장 먼저 블라인드채용+코딩테스트를 시행한게 카카오다보니까 약간 자기 실력 체크겸?으로도 많이들 지원을 하는 것 같다. 그렇지 않고는 5번 정답률이 이렇게 낮을 이유가..? 아니면 그냥 내가 운좋게 5번 풀때 머리가 잘 돌아갓을수도..아무튼 남의 코드를 아예 안 보고 푼 2019년 카카오 코딩테스트 파이썬 풀이는 이렇게 세개가 전부이다. 4번도 내가 혼자 풀긴햇지만 그건 효율성테스트 통과를 못한거라서. 나중에 3~4번 그리고 6~7번 풀이도 올릴거고 지금 공부중인데 확실히 내가 혼자 못 푼 문제를 풀 때 공부가 많이 되는 것 같다. 남들 코드를 보면서 이렇게 쉽게 짤 수도 있구나 하기도 하고 또 몰랐던 함수들도 많이 알게된다. 그리고 내 개인적으로는 내가 지금 그렇게까지 코딩을 못하는건 아니라고 생각해서, 남들의 아이디어를 보더라도 내가 자주 쓰는 함수들로 최대한 구현하려고 노력하는 편인데 그러면서 공부가 많이 되는 것 같다. 일단 내가 익숙하게 쓰는 함수들을 최대한 잘 활용해보고 그렇게해도 안 되면 새로 배우는 방식이라고 해야하나? 어차피 남들도 자주 쓰는 함수는 정해져있고 나도 읽을 때에는 해석하는데 크게 문제는 없으니까.

728x90