250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

[Algorithm] 동명이인 찾기 알고리즘 (Python, JavaScript) 본문

[Snow-ball]프로그래밍(컴퓨터)/Algorithm Training

[Algorithm] 동명이인 찾기 알고리즘 (Python, JavaScript)

Snow-ball 2023. 7. 5. 19:52
반응형

문제: 배열에 이름이 두 번 이상 나온 이름을 찾는 알고리즘

입력: 이름이 n개 들어 있는 리스트

출력: n개의 이름 중 반복되는 이름의 집합

 

 

 


 

 

 

파이썬 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def find_same_name(a):
    
    name_dict = {}
    for name in a:                  
        if name in name_dict:       
            name_dict[name] += 1    
        else:                      
            name_dict[name] = 1    
 
    result = set()          
    for name in name_dict:  
        if name_dict[name] >= 2:
            result.add(name)
 
    return result
 
name = ["Tom""Jerry""Mike""Tom"]
print(find_same_name(name))
 
name2 = ["Tom""Jerry""Mike""Tom""Mike"]
print(find_same_name(name2))
cs

 

 

 

자바스크립트 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const findSameName = (nameList) => {
  const namesCountObject = {};
  nameList.forEach((name=> {
    if (name in namesCountObject) namesCountObject[name+= 1;
    else namesCountObject[name= 1;
  });
 
  const nameSet = new Set();
  for (const [key, value] of Object.entries(namesCountObject)) {
    if (value >= 2) nameSet.add(key);
  }
 
  return nameSet;
};
 
console.log(findSameName(["Tom""Jerry""Mike""Tom"]));
console.log(findSameName(["Tom""Jerry""Mike""Tom""Mike"]));
cs

 

 

 

 

반응형
Comments