https://github.com/sdoram/sparta_project/tree/main/team_game_project
https://github.com/sdoram/Algorithm_study
1.프로그래머스 알고리즘 문제 - 최빈값 구하기
문제점
# 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.
#정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요.
#최빈값이 여러 개면 -1을 return 합니다.
#같은 숫자가 들어왔는지 체크
#중복 숫자가 있으면 카운트하기
#카운트가 가장 큰 값 찾기
# 찾아야 하는 세 가지
# 숫자 종류가 한 개인 경우 찾기
# 숫자 종류가 여러 개면서 최빈값이 여러 개인 경우
# 숫자 종류가 여러 개면서 최빈값이 한 개 경우
시도해 본 것들
해결 방법
def solution(array):
answer = 0
array_dict = {}
for i in array:
# array_dict에 중복 값이 없으면 value는 1, 중복 값이 있으면 +=1
if i not in array_dict:
# array_dict[i] = key, 1 = value
array_dict[i] = 1
else:
array_dict[i] += 1
# dict에서 value가 제일 큰 것의 key값 출력
# reverse로 가장 큰값을 앞으로 보내고 item[1]로 뽑기 item[0] = key,[1] = value
# item[1]은 value를 기준으로 reverse해서 큰 값으로 정렬
sorted_check = sorted(array_dict.items(), reverse=True,
key=lambda item: item[1])
# 들어온 값이 2종류 이상이면 if문 진입
if len(sorted_check) > 1:
# 가장 큰 값과 두번째 값을 비교해서 다르면 if문 진입
if sorted_check[0][1] != sorted_check[1][1]:
answer = sorted_check[0][0]
else:
answer -= 1
else:
answer = sorted_check[0][0]
return answer
알게 된 점
카운트를 딕셔너리를 사용해 같은 키가 들어오면 밸류에 더하는 방식으로 사용할 수 있다.
sorted를 통해서 딕셔너리의 밸류를 기준으로 정렬할 수 있다.
2.파이썬 팀 과제 - 게임 만들기
문제점
기능별로 파일을 나누고 다른 파일에서 사용하는 방법 구현에 어려움을 겪음
시도해 본 것들
main을 import해서 이름을 받아오고 job에서 출력 찍어보고 다시 main으로 보내는 형태 시도 <- 오늘 오류의 원흉
job.py에서 main.py로 딕셔너리 하나만 넘겨주고 그 딕셔너리에서 뽑아서 매칭시키기
해결 방법
#main.py 파일
player = User(name=name,
lv=1,
hp=job_status['hp'],
mp=job_status['mp'],
power=job_status['power'],
magic_power=job_status['magic_power'],
avoid=job_status['avoid'],
job=job_status['job'],
gold=job_status['gold']
)
#job.py파일
while True:
print('전사:1 마법사:2 궁수:3 도적:4')
job_input = input('직업을 선택해주세요 : ')
if job_input in job_dict.keys():
break
else:
print('올바른 입력 값 X')
continue
return job_dict[job_input]
알게 된 점
job.py에서도 잘 나오는지 확인하고 싶어서 main을 import했는데 서로 import를 하면 문제가 발생한다는 것을 배웠다.
찾아본 내용 중 모듈의 import 시점을 run time으로 옮기면 해결이 된다고 하는데 순환 참조를 포기하고 main으로 넘겨주기만 하는 방식으로 변경해서 실제로 시도하지는 않았다.
진짜 답은 모르겠고 시간은 흐르고 팀원들의 코드에도 영향을 미치니까 나도 미쳐버릴뻔 했다.
조금 늦었지만 그래도 내가 이해 가능한 코드로 만들어서 결과를 출력해서 다행이다.
'개발일지 > TIL' 카테고리의 다른 글
TIL 23-03-31 (0) | 2023.04.01 |
---|---|
TIL 23-03-30 (0) | 2023.03.30 |
TIL 23-03-28 (0) | 2023.03.28 |
TIL 23-03-27 (0) | 2023.03.27 |
TIL 23-03-26 (0) | 2023.03.26 |