반응형
문제설명
영어 단어를 외우기 위해 단어를 반복하여 타이핑합니다. 그런데, 타이핑하고 보니 오타가 많습니다. 오타를 수정하려면 문자를 몇 개 바꿔야 하는지 구하려 합니다.
예를 들어, "CODE"라는 단어를 3번 타이핑했더니 ["CODE", "COED", "CDEO"] 가 적혀있었습니다.
```
1. "CODE"는 바르게 적혔습니다.
2. "COED"는 E와 D를 각각 D와 E로 바꾸면 됩니다.
3. "CDEO"는 D, E, O를 각각 O, D, E로 바꾸면 됩니다.
따라서 바꿔야 하는 문자는 총 5개입니다.
```
타이핑한 단어를 담은 리스트 words와 원래 치려 한 단어인 word가 주어질 때 바꿔야 하는 문자 개수를 return 하도록 solution 함수를 완성해주세요.
매개변수 설명
타이핑한 단어를 담은 리스트 words와 원래 치려 한 단어인 word가 solution 함수의 매개변수로 주어집니다.
* word는 10개 이하의 알파벳 대문자로만 이루어진 단어입니다.
* words에 담긴 문자열의 길이는 word의 길이와 같으며 모든 문자열은 알파벳 대문자로만 이루어져 있습니다.
* words에 담긴 문자열의 개수는 15 이하 자연수입니다.
return 값 설명
바꾸어야 하는 문자 수를 return 해주세요.
예시
| words | word | return |
|--------------------------|--------|--------|
| ["CODE", "COED", "CDEO"] | "CODE" | 5 |
문제 코드
def solution(words, word):
count = 0
#여기에 코드를 작성해주세요.
return count
풀이 1
def solution(words, word):
count = 0
# words의 원소들의 문자를 word의 문자와 비교
for i in words:
for j in range(len(word)):
if i[j] != word[j]:
count += 1
return count
풀이 2
def solution(words, word):
count = 0
for comp in words:
# zip: comp, word의 각 문자를 x, y에 순서대로 할당
for x, y in zip(comp, word):
if x != y:
count = count + 1
return count
댓글