본문 바로가기

알고리즘15

프로그래머스 위클리 체인지 6주차 - 복서 정렬하기 풀이 언어 : PYTHON def solution(weights, head2head): answer = [] newInforms = [] for i, log in enumerate(head2head) : # 전체 이긴 횟수 win = 0 # 전체 진 횟수 lose = 0 # 나보다 무거운 선수를 이긴 횟수 heavy_win = 0 for j, l in enumerate(log) : if l == "W" : if weights[i] 0 : rate = win/(win+lose)*100 else : rate = 0 newIn.. 2021. 10. 8.
프로그래머스 위클리 체인지 5주차 - 모음사전 풀이 언어 : PYTHON def solution(word): global alphabet global dictionary alphabet = ["A", "E", "I", "O", "U"] dictionary = [] for a in alphabet : DFS(a) return dictionary.index(word)+1 def DFS(s) : if len(s)>5 : return dictionary.append(s) for char in alphabet : DFS(s + char) 이번 문제는 출제자의 의도가 명확하게 보여서 좋았다. 어느모로 보나 이건 깊은 탐색을 사용하여 풀라고 만들어진 문제 같다. A부터 시작해 DFS 탐색으로 알파벳을 하나씩 추가해주면서 단어의 길이가 5를 넘을 때 탐색을 종료시.. 2021. 10. 8.
프로그래머스 위클리 챌린지 2주차 - 상호평가 풀이 언어 : PYTHON def solution(scores): answer = '' # 학생 한 명이 받은 점수들을 따로 뽑아 배열로 만들자 n = len(scores) arr = [0 for _ in range(n)] add = 0 avg = 0 for i in range(n) : # 학생 i가 받은 점수들 for j in range(n) : arr[j] = scores[j][i] # i가 자신에게 매긴 점수가 최저 혹은 최고라면 if arr[i] == max(arr) or arr[i] == min(arr) : if arr.count(arr[i]) == 1 : # i가 매긴 점수는 빼고 평균 구한다 add = sum(arr) - arr[i] avg = add / (n-1) else : add = s.. 2021. 10. 8.
백준 18870번 좌표 압축 풀이 언어 : PYTHON 풀이 방법 : 정렬 # 난이도가 어려운 문제는 아니다. # 그저 입력한 값을 정렬한 다음에 # dic을 통해서 각 숫자가 앞에서 몇번째인지 key:value 쌍으로 입력해주면 끝이다 n = int(input()) dic = {} arr = list(map(int, input().split())) # 중복 제거하고 정렬 arr_sorted = list(sorted(set(arr))) dic = {} for (idx, val) in enumerate(arr_sorted) : dic[val] = idx for i in arr : print(dic.get(i), end=" ") 링크 18870번: 좌표 압축 (acmicpc.net) 2021. 9. 16.