Test/Python(20220101~)
프로그래머스.L0.배열의유사도
kiostory
2022. 10. 12. 21:40
문제 설명
두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ s1, s2의 길이 ≤ 100
- 1 ≤ s1, s2의 원소의 길이 ≤ 10
- s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
- s1과 s2는 각각 중복된 원소를 갖지 않습니다.
입출력 예
s1 : s2 : result
입출력 예 설명
["a", "b", "c"] | ["com", "b", "d", "p", "c"] | 2 |
["n", "omg"] | ["m", "dot"] | 0 |
입출력 예 설명
입출력 예 #1
- "b"와 "c"가 같으므로 2를 return합니다.
입출력 예 #2
- 같은 원소가 없으므로 0을 return합니다.
* 첫 번째 생각 : 단순.. 원소 하나씩 비교
def solution(s1, s2):
answer = 0
for i in s1:
if i in s2:
answer += 1
return answer
테스트 1 〉 | 통과 (0.00ms, 9.97MB) |
테스트 2 〉 | 통과 (0.00ms, 10.3MB) |
테스트 3 〉 | 통과 (0.00ms, 10.3MB) |
테스트 4 〉 | 통과 (0.00ms, 10.3MB) |
테스트 5 〉 | 통과 (0.00ms, 9.97MB) |
테스트 6 〉 | 통과 (0.00ms, 10.1MB) |
테스트 7 〉 | 통과 (0.00ms, 10.2MB) |
테스트 8 〉 | 통과 (0.00ms, 10.2MB) |
* 두 번째 생각
set() 자료형으로 바꾸면 합집합(|), 교집합(&), 차집합(-)을 쉽게 구할 수 있단다
def solution(s1, s2):
return len(set(s1) & set(s2))
문자열 배열을 set() 자료형으로 형변환하고 교집합 & 연산으로 찾아 개수 len 을 return
정확성 테스트
테스트 1 〉 | 통과 (0.01ms, 10.2MB) |
테스트 2 〉 | 통과 (0.01ms, 10MB) |
테스트 3 〉 | 통과 (0.01ms, 10.1MB) |
테스트 4 〉 | 통과 (0.01ms, 10.2MB) |
테스트 5 〉 | 통과 (0.01ms, 10MB) |
테스트 6 〉 | 통과 (0.01ms, 10.2MB) |
테스트 7 〉 | 통과 (0.01ms, 10.1MB) |
테스트 8 〉 | 통과 (0.01ms, 10.2MB) |
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
주목할 만한 것은, 짧은 코드가 소요시간 면에서 효율적이지만은 않다는 것
cf.
02-6 집합 자료형
[TOC] ## 집합 자료형은 어떻게 만들까? 집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. ...
wikidocs.net