코딩테스트/프로그래머스

프로그래머스 위클리 챌린지 21년 8월 4주차 '직업군 추천하기'문제 풀이 해설 (파이썬)

RyanKwon 2021. 9. 3. 22:41
728x90

코드만 궁금하신 분은 링크!

 

GitHub - Rhyankwon/algorithms

Contribute to Rhyankwon/algorithms development by creating an account on GitHub.

github.com

 

문제 설명 먼저 기

제한사항도 있긴 한데 그거까지..본다고 해도 솔직히 이해하기 힘들고, 아래 예시를 보면 금방 이해가 간다.

주어지는것들은 간단히 설명하면 이렇다.
1. 각 직업군별로 선호하는 언어 목록 및 점수
2. 예제의 개발자가 사용할 수 있는 개발언어 목록 및 각 언어에 대한 개발자의 선호도

적당히.. for문이랑 딕셔너리를 활용해서 풀면 되는 문제이다. 개발자가 할 수 있는 언어와 그 선호도의 입력을 따로 받기때문에 그 부분을 딕셔너리를 사용해서 언어-선호도를 연결시키고 반복을 통해 각 직업군마다 각 언어에 대해 개발자가 갖는 점수를 확인하면 된다. 이 부분은 뭐.. 어떻게 구현하든 무조건 반복을 최소 두번은 써야하고 어렵지 않다. 다만 여러개의 언어가 있을 때 그중에 두개 세개 이렇게 같은 점수가 나오는 경우가 있을 수 있고, 그 때에는 사전순 배열을 해서 가장 사전 앞쪽에 오는 언어를 리턴하라는 조건이 있고 그 부분을 조금 깔끔하게 하기가 어려웠다. 나는 각 직업군에 대한 점수를 딕셔너리에 저장해둔 뒤 반복문을 써서 가장 점수가 높은 경우의 키값을 answer리스트에 저장하는 방식으로 했다. 점수가 같은게 있으면 리스트에 저장하니까.. 나중에 리턴값은 리스트 정렬해서 맨 앞에있는 값이 되겠다.

윗쪽에서 for문을 어느정도 사용하는건 어쩔 수 없지만 뭔가 이 부분은 줄이려면 줄일 수 잇을 것만 같은 기분이 들었다. 결국 그렇게까지 깔끔하게 만들진 못하고 그냥.. 그냥 맨 처음 딱 생각났던 풀이 그대로 코드를 짰다. 근데 뭐 더러운 것도 아니고, 그냥 직관적으로 이해하기 쉬운 풀이라고 생각해서, 뭐.. 그냥 그렇다고..ㅋㅋㅋㅋㅋㅋㅋㅋ

 

확실히 위클리 문제들이 적당히 쉽고 깔끔하게 풀리는 것 같다. 공부용..보다는 그냥 가끔 다른 공부하면서 잊어버리고싶지 않을 때 좋은듯? 다른 풀이를 보니까 zip함수나 get함수를 쓰면 깔끔히 잘 풀리는 것 같은데 뭐랄까.. 공부 더 해야겠구나 싶은 생각이 있으면서도 최대한 파이썬만 쓸 수 있는 함수는 지양해야 공부가 더 되지않나 싶기도 하고. 물론 그런거 치고는 나도 collections을 쓰긴 했지만 그거야 뭐.. for문 한번 쓰면 해결되는 문제니까..(내로남불?ㅋㅋㅋ)

728x90