정구리의 우주정복
[TOP CODER] 즐거운 파티 (전체 탐색) 본문
반응형
문제 :
화이트씨는 다재다능한 사람입니다 . 그래서 그에겐 친구가 많습니다 . 하지만 불행하게도 그의 친구들은 다재다능하지 않습니다 . 각각의 친구는 2가지 주제에만 관심이 있고 다른 주제로 이야기하는 것을 싫어합니다 . 그래서 파티를 개최할 때마다 모두가 즐겁게 파티를 보내려면 어떤 친구들을 초대해야할지가 큰 문제입니다 . 화이트씨는 그 동안의 경험으로 초대된 친구 모두가 공통의 흥미있는 화제가 있을때 파티를 즐긴다는 것을 알았습니다 .
문자열 배열 first 와 second 가 주어집니다 . 화이트씨의 i번째 친구가 흥미있는 화제는 first[i] 와 second[i] 입니다. 즐거운 파티가 되려면 화이트씨가 초대할 수 있는 친구는 최대 몇명인지 리턴하세요.
입출력 값 예 :
first = {fishing,gardening,swimming,fishing}
second = {hunting,fishing,fishing,biting}
Return : 4
풀이 :
전체탐색을 이용해서 i 번째와 일치하는 친구가 first or second 에 있으면 count 값을 +1 해주고 최종 count 값을 append 해준다
first= list(map(str,input().split(',')))
second = list(map(str,input().split(',')))
count = []
for i in range(len(first)):
count_first = 0
count_second = 0
for j in range(len(first)):
if first[i] == first[j] or first[i] == second[j]:
count_first += 1
if second[i] == first[j] or second[i] == second[j]:
count_second += 1
count.append(count_first)
count.append(count_second)
print(max(count))
응용 풀이 :
딕셔너리를 사용해서 풀어준다 (for 문을 한번만 사용하면 되기 때문에 좀 더 효율적임)
first= list(map(str,input().split(',')))
second = list(map(str,input().split(',')))
count = {}
for i in range(len(first)):
count[first[i]] = 0
count[second[i]] = 0
for j in range(len(first)):
count[first[j]] +=1
count[second[j]] +=1
print(max(count.values()))
반응형
'ALGORITHM > SOLVE' 카테고리의 다른 글
[프로그래머스] 완주하지 못한 선수 파이썬 (0) | 2020.05.29 |
---|---|
[프로그래머스] 크레인 인형뽑기 게임 파이썬 (0) | 2020.05.28 |
[BOJ] 1018번 - 체스판 다시 칠하기 파이썬 (0) | 2020.05.22 |
[BOJ] 7568번 - 덩치 파이썬 (0) | 2020.05.21 |
[BOJ] 백준 2798번 - 블랙잭 파이썬 (0) | 2020.05.21 |
Comments