코드만 궁금하신 분들은 링크로..!!
GitHub - Rhyankwon/algorithms
Contribute to Rhyankwon/algorithms development by creating an account on GitHub.
github.com
일단 문제부터 함 봅시당
이해하기가 그렇게 어려운 문제는 아닙니다. 그냥 적당히..매개변수를 받아서 문제 설명에 나와있는대로.. 풀면 됩니다.
우선 계산해야하는건 딱 두개다. 순서대로 보면 다른 복서와의 승률을 먼저 계산하면되고, 그리고 두번째로는 자신보다 몸무게가 무거운 복서를 이긴 횟수를 계산하면 된다. 3번째, 4번째 조건은 그냥.. 정렬할 때에만 신경을 쓰면 되는 부분이라 계산할건 첫번째 두번째 뿐이다.
나 같은 경우에는 우선 정렬은 그냥 sort나 sorted에서 key = lambda를 활용해서 한번에 여러 변수로 정렬하면 될거라 생각했다. 그리고 정렬은 그냥 그렇게..하면 되고, 이제 승률이랑 더 무거운 복서를 이긴 횟수를 계산하면 되는데.. 이건 뭐 for문을 몇번이고 쓰면 어쨌든 결과를 얻을 수는 있는 부분이라서 나같은 경우에는 어떻게 해야 조금 간단히 할 수 있을지 고민을 조금 했다.
그래서 처음에는 count함수를 써서 'w'갯수를 찾는 식으로 승률계산을 했었는데, 나중에는 그냥 for문을 사용해서 w인 경우 승률을 추가하는것 뿐만 아니라 두 복서의 무게까지 같이 비교해서 한번의 for문으로 1,2번 조건을 모두 계산하는 식으로 코드를 짰다.
어려운 문제는 아니라서.. 다만 나는 테스트케이스를 쉽게 통과한거에 비해서 6~10번 문제에서 자꾸 오류가 났다. 혼자 해결하려고 했지만 내가 생각한 구현.. 논리의 문제는 아닌것같아서 (논리랄게 없잖아 ㅋㅋㅋㅋ 그냥 풀면 되는문제라 ...)다른 사람들이 질문 한거를 확인해봤는데 6~10에서 소수점..계산/비교 이슈가 있는 것 같았다. 그래서 나는 처음에는, 최대한 간단히 코드를 짜고 싶어서 -승률을 계산할때, 한번에 전체 이긴 횟수를 구한 다음 (전체 이긴 횟수)/(전체 시합 횟수) 이렇게 계산하지 않고(이렇게 하면 코드 줄이 늘어나니까..) head2head매개변수에서 매번 'w'가 있을 때마다(이겼을 때마다) 1/(전체 시합 횟수)를 더했었다. 그리고 이 부분이 문제인건가 싶어서 조금 더 소수점계산시 에러가 안 나도록 처음 방법으로 (전체 이긴 횟수)/(전체 시합 횟수) 로 코드를 수정했더니 바로 문제가 풀렸다.
해당 테스트케이스가 어떤식으로 작동하기에 저기에서 큰 문제가 생기는지 잘 모르겠지만 아무래도 전체 길이가 길어지면 계산이 많아질수록 오류 날 확률이 커지니까... 아무튼 풀긴 했다. 처음대로 풀었으면 훨씬 더 깔끔하게 풀엇을텐데 그건 뭐 어쩔수없지.
적당히..잘.. 풀린듯.
- 휴가나와서 뭔가 공부해야할거같아서 이거 풀고있는 내가 유머
- 내일 카카오 코딩테스트가 있긴한데..휴가라.. 어떻게할지모르겟다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 월간 챌린지 금과 은 운반하기 해설/코드 (파이썬) (2) | 2021.09.21 |
---|---|
프로그래머스 월간 코드 챌린지 빛의 경로 사이클 문제 해설/코드 (파이썬) (0) | 2021.09.20 |
프로그래머스 위클리 챌린지 7주차 입실 퇴실 문제 해설/코드 (파이썬) (0) | 2021.09.15 |
프로그래머스 위클리 챌린지 21년 8월 4주차 '직업군 추천하기'문제 풀이 해설 (파이썬) (0) | 2021.09.03 |
프로그래머스 2021년 8월 5주차 위클리 챌린지 (모음 사전) 파이썬 풀이 코드 (재귀) (0) | 2021.09.01 |