CodeCata - 4

이동근·2021년 2월 9일
0

코드카타

목록 보기
4/5

리스트에서 과반수 이상의 숫자 출력

문제

숫자로 이루어진 배열의 nums를 인자로 전달합니다. 리스트에 있는 숫자들의 갯수중 과반수 이상 들어 있는 숫자를 리턴하세요

접근법

  1. 리스트에 있는 숫자들을 dict에 key 값과 value 값으로 정리 한 후 리턴하는 방식을 선택

코드

  1. 'count_list' nums에 들어 있는 리스트를 1:1, 2:2... 이런식으로 정리하기 위해 선언한 dict, count_list 안에 nums의 파라미터가 있으면 1을 추가 없으면 1 추가 하는 방식으로 정리
  2. 'maximum_k = num[0]' key값을 비교하기 위해 제일 첫 값으로 설정
  3. 'maximum_v = count_list[num[0]]' value를 비교하기 위해 선언
  4. for loop를 돌면서 만약 k가 maxium_k 보다 크게 되면 maxium_k를 교체, 그리고 마지막에는 maxium_k를 return 하는 방식으로 알고리즘을 풀었다.

※ itmes()

dic1 = 딕셔너리 형태
dic2 = 딕셔너리 형태를 items 해준 형태

우선 결과로 보여주면

이런식으로 나온다. items를 사용해주면 dict형태를 튜플 형태로 바꿔준다. 즉 오늘 풀었던 코드 카타의 count_list 역시 items()를 해주면서 각 튜플 형태로 바뀌게 된다. 0번째 항이 k, 1번째 항이 v가 된다.

bonus

다른 동기분의 코드중에 기가 막힌 코드가 있어 공유하게 되었습니다. 어찌보면 내가 쓴 코드는 '과반수'를 제대로 처리 해줬다고 볼 수 없다.

단 세 줄로서 코드가 끝이 났다. 'count' 메소드를 사용해서 i의 갯수가 len(nums) // 2 보다 클 경우 리턴.....


오늘의 명언 아는것이 힘이다....

profile
하루하루 1cm 자라는 개발자

0개의 댓글

관련 채용 정보