python 동명이인 찾기

‍Juhee Kim·2021년 7월 16일
0

예시 리스트 생성

name = ['Tom', 'Jerry', 'Mike', 'Julia', 'Tom']

  • 어떻게 풀지 생각해보자
  1. 첫 번째 Tom을 뒤에 있는 'Jerry', 'Mike', 'Julia', 'Tom'와 차례료 비교
  2. 첫 번째 Tom과 마지막 Tom은 동명이인이다.
  3. 두 번째 Jerry 뒤에 있는 'Mike', 'Julia', 'Tom'와 비교
  4. 세 번째 Mike 뒤에 있는 'Julia', 'Tom' 비교
  5. 네 번째 Julia 뒤에 있는 Tom과 비교
  6. 마지막 Tom은 비교 안 해도 된다(이미 앞에서 비교했음)
  7. 같은 이름은 Tom 하나 뿐이다.

주의사항

  1. 비교할 이름을 뽑은 다음에는 뽑은 이름이 순사상 뒤에 있는 이름하고만 비교하면 된다.

  2. 리스트의 마지막 이름을 기준으로는 비교하지 않아도 된다.

  3. 같은 이름을 찾으면 결과 집합에 그 이름을 추가한다.

코드 구현

def find_same_name(a):
  n = len(a)
  result = set() 		# 결과 저장 할 빈 집합
  for i in range(0, n-1): 	# 0부터 n-2 까지 반복
    for j in range(i + 1, n): 	# i+1부터 n-1까지 반복
      if a[i] == a[j]: 		#이름 같으면
        result.add(a[i]) 	# 그 이름 result에 추가
  
  return result

name = ['Tom', 'Jerry', 'Mike', 'Julia', 'Tom']
print(find_same_name(name))
# 결과  :{'Tom'}

집합에서는 어떤 자료가 집합에 들어 있는지만 중요할 뿐, 그 자료들의 순서는 중요하지 않다.

profile
찐문과생의 빅데이터 생존기🐣 열심히 할래용 (ง •_•)ง

0개의 댓글