250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- time()
- iterable
- cte
- 알고리즘
- sql
- 우선순위
- 함수성능평가
- googleappscript
- git #github #내일배움캠프
- AI
- 가상환경
- gitignore
- WIL
- Display
- Iterator
- onClick
- venv
- 프로그래머스
- with\
- target
- Level1
- A태그
- 함수실행시간
- position
- python
- AI 5기
- itertools
- googlesheet
- vscode
- 내일배움캠프
Archives
- Today
- Total
05의 개발 계발
[페어프로그래밍] 230404 최빈값 구하기 본문
728x90
페어프로그래밍 결과 코드
# 페어프로그래밍으로 제작한 코드
def solution(array):
# 우리는 각 원소의 숫자와 갯수 즉, 세트값을 저장해야한다. → dict사용!
# 각 원소의 숫자와 갯수를 딕셔너리에 key와 value로 저장하자!
count_dict = {}
for num in array:
# dict 키 판별, 없으면 value가 1 , 있으면 value에 +1
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
# 빈도수(value) 최댓값, 즉 value값이 제일 큰 key값을 return 해줘야 한다!
max_count = max(count_dict.values())
# 최빈값(key)이 여러개일 경우를 고려해서, 반복문을 돌려 최빈값의 리스트(mode_list)를 만든다!
# 그리고 최빈값 리스트를 통해 하나인지 여러개인지 판별해야 한다!
mode_list = []
for key, count in count_dict.items():
if count == max_count:
mode_list.append(key)
# 리스트의 길이를 비교하여 최빈값의 갯수를 판별하여 최빈값 또는 -1 return!
if len(mode_list) == 1:
return mode_list[0]
else:
return -1
리팩토링 코드
# 리팩토링(삼항연산자 리스트컴프리헨션 사용)
def solution(array):
count_dict = {} # 각 원소의 숫자와 갯수를 딕셔너리에 key와 value로 저장할 빈 딕셔너리!
for num in array:
# dict 키를 판별, 없으면 value가 1 , 있으면 value에 +1
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
# 빈도수(value) 최댓값, 즉 value값이 제일 큰 key값을 return 해줘야 한다!
max_count = max(count_dict.values())
# 최빈값(key)이 여러개일 경우를 고려해서, 반복문을 돌려 최빈값의 리스트(mode_list)를 만든다!
# 그리고 최빈값 리스트를 통해 하나인지 여러개인지 판별해야 한다!
mode_list = [num for num in set(array) if count_dict[num] == max_count]
# 리스트의 길이를 비교하여 최빈값의 갯수를 판별!
# 삼항연산자로 리팩토링
return mode_list[0] if len(mode_list) == 1 else -1
시사점 or 새로이 알게된 점
# 리스트컴프리헨션
# 1) 리스트 = [ 리스트의 요소가 되었으면 하는 값 for x in list 조건문 ]
# 2) [ ]를 꼭 써야한다!
728x90
'내일배움캠프 AI > 페어프로그래밍' 카테고리의 다른 글
[페어프로그래밍] 230418 콜라츠 추측 | while if 삼항연산자 (0) | 2023.04.18 |
---|---|
[페어프로그래밍] 230407 핸드폰 번호 가리기 .replace() (0) | 2023.04.08 |
[페어프로그래밍] 230406 영어가 싫어요 .replace() (1) | 2023.04.06 |
[페어프로그래밍] 230406 가위 바위 보 dict / .translate / str.maketrans (1) | 2023.04.06 |
[페어프로그래밍] 230405 최빈값 구하기 - .index() (0) | 2023.04.05 |