구현, 문자열 문제이다. 비슷한 단어가 될 수 있는 조건을 정확히 찾으면 쉬운 문제인데, 조건 하나를 빠뜨려서 조금 헤맸다.
1. 우선 기준이 될 단어 ref 의 각 문자 당 개수를 세 둔다.
2. 비교대상 단어 word를 입력받는데, 만약 ref와 word의 len 차이가 2 이상이라면 절대 비슷한 단어가 될 수 없으니 넘어간다.
3. 비교대상 단어 word 의 각 문자 당 개수도 세 둔다.
4. ref와 word에 존재하는 모든 문자를 검사하기 위해, 순회용 문자의 합집합 all_chars를 만들어 둔다.
5. 이제 all_chars를 순회하면서 각 문자의 개수 차이를 세서 diff_count에 전부 더한다.
이 때 diff_count가 3 이상이면, 절대로 비슷한 단어가 될 수 없다. 그렇다면 남은 경우의 수는 diff_count가 0, 1, 2일 때이다.
diff_count가 0인 경우: 같은 구성 ( 'ABC', 'CBA' )
diff_count가 1인 경우: 같은 구성인데, 단어 하나가 추가된것 ( 'ABC', 'ABCD' )
diff_count가 2인 경우: 길이와 구성이 같은데, 단어 하나만 다른 것 ( 'ABC', 'ABG' )
-> 이 경우 왜 diff_count가 2냐면, C를 word에서 찾고 G를 ref에서 찾기 때문에 단어 한개가 다른데도 diff_count는 2가 추가된다.
이 외에 비슷한 단어가 되는 경우는 없다. 난 diff_count가 2인 경우도 정답이 될 수 있다는 걸 간과해서 좀 헤맸다.
'Algorithm > Implementation' 카테고리의 다른 글
[백준 10431 / Python / 실버5] 줄세우기 (0) | 2025.06.18 |
---|---|
[프로그래머스 / python / Level 2] 압축 (0) | 2025.06.13 |
[프로그래머스 / python / Level 2] 프렌즈4블록 (0) | 2025.06.13 |
[프로그래머스 / python / Level 3] 자물쇠와 열쇠 (0) | 2025.06.11 |
[프로그래머스 / python / Level 1] 가장 많이 받은 선물 (0) | 2025.05.29 |