일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2-layered architecture
- 슈츠 자막
- 프로그래머스 가위바위보
- 주니어개발자
- 춥고 더운 우리 집
- 배열의 유사도 파이썬
- 프로그래머스
- leftJoin
- 파이썬 컬렉션
- 프레젠테이션 레이어
- 개발자 취준
- 프로그래머스 특정 문자 제거하기
- 비지니스 레이어
- BigO notation
- 파이썬 특정 문자 제거하기
- Programmers 배열의 유사도
- 춥고더운우리집
- 알고리즘
- 리트허브 커밋
- 가위바위보 풀이
- 리트허브 오류
- 리트허브 사용법
- 공선옥
- programmers 배열 회전
- 특정문자 제거하기
- 스프링 시스템 구조
- 프로그래머스 배열의 유사도 파이썬
- collection python
- 프로그래머스 배열 회전시키기
- 프로그래머스 가위바위보 풀이
- Today
- Total
기억보다 기록을
[Programmers] 배열의 유사도 본문
def solution(s1, s2):
count = 0
for i in s1:
if i in s2:
answer += 1
count +=1
return count
# 합집합은 | 사용
def solution2(s1, s2):
return len (set(s1) & set(s2))
# 배열끼리 + 하면 합집합이구나 알 수 있음(중복제거됨)
def solution3(s1, s2):
return len(s1)+ len(s2)- len (set([s1 + s2]))
resource: https://school.programmers.co.kr/learn/courses/30/lessons/120903
suedo code:
0. declare 1 variable 'count' initialize w/ '0'
1. traverse each array
2. if find s2' char
3. add 1 number on variable
4. return count
이게 내가 생각한 기본 풀이인데 만약 이 문제를 집합 문제라고 생각하면?
1) 교집합 구하기 - solution2
2) 전체 개수에서 (중복개수 제거안함) - 두개의 합집합 수를 뺀다 - solution3
- https://dojang.io/mod/page/view.php?id=2315 참고 (집합 연산 in python)
문득, '유사도'면 s1,s2의 원소들로 구성할 수 있는 전체 경우의 수에서 같은 원소의 개수 퍼센티지를 구해 리턴하는 문제여야 제목에 더 부합하는 것 같다고 생각했다. 쉬운 난이도를 위해 그냥 개수만 리턴하라 한듯.. 그 경우엔 아래의 상대빈도를 사용해보기
a. 상대빈도 구하기 - 간단한 방법
``` arr = [2, 0, 1, 3, 2, 0, 2, 3, 0, 1, 1, 2, 2, 0, 3] ``` 앞서 다뤘던 리스트입니다. ``` brr = [4, 3, 5…
wikidocs.net
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 369게임 (str.count(),lambda,filter,정규표현식 사용한 풀이) (0) | 2023.02.01 |
---|---|
[Programmers] 외계행성의 나이 (0) | 2023.01.27 |
[Programmers] 배열 회전시키기 (0) | 2023.01.15 |
[Programmers] 특정 문자 제거하기 (0) | 2023.01.13 |
[Programmers] 가위 바위 보 (0) | 2023.01.13 |