Skip to content

Commit

Permalink
Revise PG_marathon
Browse files Browse the repository at this point in the history
  • Loading branch information
MukKim committed May 23, 2019
1 parent 92996b2 commit e8d0907
Showing 1 changed file with 36 additions and 21 deletions.
57 changes: 36 additions & 21 deletions 김현묵/6주차/PG_marathon/Solution.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# 프로그래머스 '완주하지 못한 선수' 문제
# 문제링크 : https://programmers.co.kr/learn/courses/30/lessons/42576


# 첫번재 풀이입니다. 효율성 : 0

# def solution(participant, completion):
Expand All @@ -11,38 +15,49 @@
# return answer


# 두번재 풀이입니다. 효율성 : 0

def solution(participant, completion):
for completionHuman in completion:
if completionHuman in participant:
participant.remove(completionHuman)
# 두번재 풀이입니다. 효율성 : 0

# def solution(participant, completion):
# for completionHuman in completion:
# participant.remove(completionHuman)
#
#
# answer = participant[0]
# return answer

answer = participant[0]
return answer



# 세번째 풀이입니다.

# 정확성 : 50
# 효율성 : 50

# 효율성의 문제로 해쉬를 써야 합니다.
# 리스트로 비교하며 remove 하는 과정은 O(n) 의 시간복잡도를 지니므로
# 해쉬로 key를 줘서 직접 찾는 O(1) 를 사용해야 효율성이 증가합니다.

# 파이썬 파일 실행 후 첫번재 줄에 마라톤 선수들의 이름을 입력합니다.
# 각 선수들 사이는 공백으로 구분합니다.
# 두번째 줄에는 완주한 선수들의 이름을 입력합니다.
# 각 선수들 사이는 공백으로 구분합니다.
# 파이썬에서 해쉬는 딕셔너리로 사용가능합니다.
# 참가자 이름을 key로 하여 딕셔너리를 만듭니다.
# value는 key의 이름을 가진 사람의 수입니다.[동명이인이 존재할 경우 2 이상]

athlete = input().strip().split()
success = input().strip().split()
def solution(participant, completion):

athleteList = []
finishList = []
partDict = dict()

for human in athlete:
athleteList.append(human)
# 참가자 리스트에서 참가자 이름 수 만큼 딕셔너리의 value를 설정합니다.
for part in participant:
if part not in partDict:
partDict[part] = 1
else:
partDict[part] = partDict[part] + 1

for successHuman in success:
finishList.append(successHuman)
# 완주자 목록 리스트를 key로 하여 value를 1씩 줄여줍니다.
for comp in completion:
partDict[comp] = partDict[comp] -1

failHuman = solution(athleteList, finishList)
print(failHuman)
# 그러면 value를 1로 가지는 key가 답이 됩니다.
for key, value in partDict.items():
if value == 1:
return key

0 comments on commit e8d0907

Please sign in to comment.