본문 바로가기

반응형

알고리즘/구현

(7)
[프로그래머스] 달리기 경주 - dict() (Python) *내가 작성한 코드 def solution(today, terms, privacies): answer = [] today_year = int(today[:4]) today_month = int(today[5:7]) today_day = int(today[-2:]) term_x = [] for i in range(len(terms)): term_x.append(terms[i].split()) privacie_x = [] for i in range(len(privacies)): privacie_x.append(privacies[i].split()) for index, i in enumerate(privacie_x): m = 0 privacies_year = 0 privacies_month = 0 privac..
특정 키를 기준으로 배열 오름차순 정렬하기(lambda) - python 문제: 프로그래머스 PCCE기출문제 10번 데이터 분석 def solution(data, ext, val_ext, sort_by): answer = [[]] a = [] sort = ["code", "date", "maximum", "remain"] for i in range(len(data)): for index, c in enumerate(sort): if ext == c: if data[i][index] 배열..
파이썬 enumerate() 내장함수 사용 *처음 enumerate() 함수 쓰지 않고 푼 내 코드 def solution(board, moves): answer = 0 bag = [] for i in moves: for j in range(len(board)): if board[j][i-1] != 0: if bag and bag[-1] == board[j][i-1]: del bag[-1] answer += 2 else: bag.append(board[j][i-1]) board[j][i-1] = 0 break return answer * enumerate() 함수 사용한 코드 def solution(board, moves): answer = 0 bag = [] for i in moves: for index, j in enumerate(board)..
프로그래머스 - 대충 만든 자판(Python) 이 문제를 풀면서 정말 많은 시도를 했던 문제였다... 처음에는 14번부터 테케가 통과가 안되더니 다시 수정후, 17번 테케만 유독 안되었다... 그렇게 방법을 찾던 중, 질문하기에 누군가가 17번 테케를 남겨놓은 댓글을 보았고, 해당 테케를 추가했더니 딱 그 테케에서 오류가 났다! 이 부분에 대한 원인을 찾아서 수정하고 나니 통과할 수 있었다. 후후.... 혹시나 저처럼 17번 테스트케이스에서 계속 틀리는 분들을 위하여 포스팅을 남겨놓겠슴다.. 문제설명: 제한사항: 나의 풀이: 저는 이렇게 풀었다 정도로만 생각해주세요...ㅎㅎ def solution(keymap, targets): answer = [0] * len(targets) key_count = 0 for word in range(len(targ..
lambda를 활용한 sort (Python) 내 코드) from fractions import Fraction def solution(N, stages): answer = [] success = [] cnt = 0 for i in range(1, N + 1): if i in stages: a = stages.count(i) b = len(stages) - cnt cnt += a success.append([i, float(Fraction(a, b))]) if i not in stages: success.append([i, 0]) success.sort(key = lambda x : (-x[1], x[0])) #x[1]은 내림차순, 같은 값일 경우 x[0] 오름차순 정렬 for i in range(N): answer.append(success[i][..
시간 복잡도를 줄이기 위한 소수 구하기, 약수 구하기 (Python) 프로그래머스 level1. 소수찾기 원래 풀이대로 하면 시간 초과가 되었다. n의 조건이 2
백준 1417 국회의원 선거 (Python3) 이 문제는 구현 유형 중에 하나인데, 풀이 방법은 여러가지가 있는 것 같다. 후보 수 N명이 주어지고, 각 후보자에 대한 지지하는 사람 수가 주어진다. 그 중 1번 후보자를 지지하는 사람 수가 가장 많아지도록 다른 후보자 지지자 수에서 한 번씩 빼와서 더할 때마다 카운트를 하여 최댓값을 만들 수 있는 카운트의 최솟값을 구하는 문제다. -나의 풀이 방법: import sys input = sys.stdin.readline n = int(input()) #후보자 수 people = [] #후보자를 지지하는 사람 수를 담을 리스트 cnt = 0 #연산 횟수 for _ in range(n): #각 후보자를 지지하는 사람 수를 입력받아 people리스트에 넣는다. people.append(int(input()))..