문제
두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return 하도록 solution 함수를 완성해주세요.
입출력 예
입출력 예 설명
- 입출력 예 #1
-> "b"와 "c"가 같으므로 2를 return 합니다.
- 입출력 예 #2
-> 같은 원소가 없으므로 0을 return 합니다.
풀이
def solution(s1, s2):
answer = 0
for i in s1:
for j in s2:
if i == j:
answer +=1
return answer
-> 중첩 반복문, if문을 활용하여 문제 풀이
solution(['a','b','c'],['com','b','d','p','c'])
-> 이렇게 할 경우 아래와 같이 돌아가면서 똑같은 글자 비교하면서 answer 1 씩 증가되게 함
a | com |
a | b |
a | d |
a | p |
a | c |
b | com |
b | b |
b | d |
b | p |
b | c |
다른 사람 풀이
def solution(s1, s2):
return len(set(s1)&set(s2));
- set을 활용한다
ex) s2 = set("Hello")
s2
{'e','H','l','o'} - set의 특징 2가지
1. 중복을 허용하지 않는다.
2. 순서가 없다(Unordered)
-> set은 중복을 허용하지 않는 특징 떄문에 데이터의 중복을 제거하기 위한 필터로 종종사용 - set을 활용하여 두개의 "&"연산자로 교집합을 구하고 그걸 len을활용하여 개수로 반환한다.
'Programmers > Python' 카테고리의 다른 글
Level 0 - 배열 뒤집기 (0) | 2023.07.18 |
---|---|
Level 0 - 피자 나눠 먹기 (1) (0) | 2023.07.18 |
Level0 짝수,홀수 개수 (0) | 2023.07.15 |
Level0 - 편지 (0) | 2023.07.15 |
Level0 - 중복된 숫자 개수 (0) | 2023.07.13 |