[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 |
반응형