반응형
풀이
더보기
- 이름 하나를 기준으로 세워놓고 각각의 이름과 비교하여 동명이인인지 구한다.
- 동명이인을 만났을 때, 동명이인의 수를 중복으로 검색하는 걸 방지하기 위해서 일종의 스위치(?)를 만든다 => boolean
- 이미 동명이인으로 판별이 되고 나서 다음 이름을 검색할 때 같은 이름으로 검색하는 것을 방지하기 위해서, 동명이인을 만났을 때 해당이름을 다른 값으로 바꿔준다.
- 동명이인을 만나서 다른 값으로 바뀐 경우 검색할 때 skip해준다 => continue
String memberStr = "김혜수:송강호:정우성:이민정:송강호:이민정:이민정:이정재:이병헌:이정재";
String[] names = memberStr.split(":");
int sameCount = 0;
for (int i = 0; i < names.length; i++) { // 기준이 되는 이름
String name = names[i]; // 기준이름
boolean isSame = false;
if (name.equals("-")) { // 동명이인으로 체크돼서 '-'일 경우 skip!!
continue;
}
for (int j = i + 1; j < names.length; j++) { // i 다음 번째부터 반복문이 돌아야하기 때문에 i + 1
if (name.equals(names[j])) {
isSame = true; // 동명이인의 수를 중복으로 검색하지 않게하기 위해서 스위치(?)를 만들어 주는 것
names[j] = "-"; // 동명이인일 때, 다시 한 번 검색하는 것을 방지
}
}
if (isSame) { // 참: 기준 이름에 대해서동명이인인 적이 있었다.
sameCount++;
}
}
System.out.println("동명이인 종류 수 : " + sameCount);
반응형
'Algorithm > etc' 카테고리의 다른 글
[코딩연습] 영단어 퀴즈 (0) | 2021.11.08 |
---|---|
[코딩연습] 2차원 배열 (0) | 2021.11.05 |
[코딩연습] 배열 연습 (0) | 2021.11.04 |
[코딩연습] 메소드 생성 연습 2 (0) | 2021.11.03 |
[코딩연습] 메소드 생성 연습 1 (0) | 2021.11.02 |