250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 이중for문
- 시각화
- 데이터시각화
- 내일배움캠프
- 한줄for문
- 통계학
- AB테스트
- 내배캠_학습기록
- 리스트
- 프로그래머스
- 선형회귀
- Max
- Til
- 가설검정
- 다중공선성
- 반복문
- f-string
- SQLD
- SQL
- 아티클스터디
- Set
- map
- Join
- 데이터전처리
- DATE_SUB
- 내일배움일지
- python
- 태블로
- Leetcode
- ★
Archives
- Today
- Total
노력에는 지름길이 없으니까요
프로그래머스 - 배열의 유사도 Python ver. 본문
728x90
해결일 | 언어 | 레벨 | 테스트명 |
20240718 | Python | level 0 | 배열의 유사도 |
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/120903
문자열 리스트 두 개가 주어질 때, 같은 원소의 개수를 return하기
내 코드
def solution(s1, s2):
return len([i for i in s1 if i in s2])
베스트 코드
def solution(s1, s2):
return len(set(s1)&set(s2));
여기서 set을 어떻게 쓴 건지 궁금해서 입출력 예에 있는 테스트 케이스 하나를 응용하고 추가해서 한 번 살펴보았다.
s1 = ["a", "b", "c", "c", "c"]
s2 = ["com", "b", "d", "p", "c", "b"]
result =2
이 경우,
set(s1) -> 중복된 데이터를 모두 삭제
-> {'b', 'a', 'c'}
set(s2) -> 중복된 데이터를 모두 삭제
-> {'com', 'd', 'b', 'c', 'p'}
set(s1)&set(s2) -> set(s1)와 set(s2) 중 겹치는 데이터를 출력
-> {'b', 'c'}
제한사항 중 s1과 s2는 각각 중복된 원소를 갖지 않는다는 조건이 있었기에 굳이 set을 할 필요는 없었던 것 같지만...
아마 &를 사용하기 위해 set을 붙인 듯 하다.
리스트 형태 그대로 시도해보았더니 에러가 뜬다.
TypeError: unsupported operand type(s) for &: 'list' and 'list'
728x90
반응형
'Python > 프로그래머스' 카테고리의 다른 글
프로그래머스 - A로 B 만들기 Python ver. (0) | 2024.07.19 |
---|---|
프로그래머스 - 길이에 따른 연산 Python ver. (0) | 2024.07.18 |
프로그래머스 - 콜라 문제 Python ver. (0) | 2024.07.17 |
프로그래머스 - 홀수 vs 짝수 Python ver. (0) | 2024.07.16 |
프로그래머스 - 배열의 원소 삭제하기 Python ver. (0) | 2024.07.15 |