🌴 문제 : 동명이인 수 구하기
String memberStr = "김혜수:송강호:정우성:이민정:송강호:이민정:이민정:이정재:이병헌:이정재";
동명이인 종류: 송강호, 이민정, 이정재 => 3
<출력 예시>
동명이인 종류 수:3
🌴 문제 분석
String memberStr = "김혜수:송강호:정우성:이민정:송강호:이민정:이민정:이정재:이병헌:이정재";
String[] names = memberStr.split(":");
int resultCount = 0; // 동명이인 종류 수
for (int i = 0; i < names.length; i++) { // 기준이름
int sameCount = 0;
for (int j = i + 1; j < names.length; j++) { // 비교 대상 이름
if (names[i].equals(names[j])){ // 기준, 비교대상 이름이 같을 때.
sameCount++;
}
}
// 앞에서 나온 동명이인은 버리고, 맨 뒤에 발견된 동명이인만 최종적으로 카운팅한다.
if(sameCount == 1) {
resultCount++;
}
}
System.out.println("동명이인 종류 수 : " + resultCount);
String memberStr = "김혜수:송강호:정우성:이민정:송강호:이민정:이민정:이정재:이병헌:이정재";
String[] names = memberStr.split(":");
int resultCount = 0;
for(int i = 0; i < names.length; i++) { // 기준 이름
String name = names[i]; // 기준 이름 김혜수 -> 송강호
boolean flag = false;
if(name.equals("")) { // 기준 이름이 빈칸일 때, 동명이인으로 체크되서 빈칸인 경우 skip
continue; // 기준이름을 skip
}
for (int j = i +1; j < names.length; j++ ) { // 비교 대상 이름 // 김혜수 뒤부터 시작해야 되서 i + 1
if (name.equals(names[j])) { // 기준이름, 비교 대상 이름이 같을 때
flag = true;
names[j] = "";
}
}
// 동명이인 종류 수 증가.
if(flag) {
resultCount++;
}
}
System.out.println("동명이인 종류 수 :" + resultCount);
'Algorithm' 카테고리의 다른 글
Algorithm - 큰 값 구하기 (0) | 2023.01.14 |
---|---|
Algorithm - 윷놀이 (0) | 2023.01.14 |
Algorithm - 전체 수 입력 (0) | 2023.01.07 |
Algorithm - 일부 평균 최고점 (0) | 2023.01.06 |
Algorithm - 별찍기 (3) (0) | 2022.12.31 |