1. 일반 집합의 교집합/합집합
>> s1 = set([1, 2, 3, 4, 5, 6]) >> s2 = set([4, 5, 6, 7, 8, 9]) 교집합 >> s1 & s2 {4, 5, 6} 합집합 >> s1 | s2 {1, 2, 3, 4, 5, 6, 7, 8, 9} 차집합 >> s1 - s2 {1, 2, 3} >> s2 - s1 {8, 9, 7}
2. 다중 집합의 교집합/합집합
a = [1,2,2,3,4,5] b = [1,1,2,3,4,6] 다중 집합의 합집합: [1,1,2,2,3,4,5,6] 다중 집합의 교집합: [1,2,3,4]
합집합 구하기 방법
a = [1,2,2,3,4,5] b = [1,1,2,3,4,6] a_temp = a.copy() a_result = a.copy() for i in b: if i not in a_temp: a_result.append(i) else: a_temp.remove(i) # 결과 a_temp
교집합 구하는 방법
a = [1,2,2,3,4,5] b = [1,1,2,3,4,6] result = [] for i in b: if i in a: a.remove(i) result.append(i) print(result)
3.소수점 아래 숫자 버리고 정수부분만 남기기
->trunc()함수 쓰기
(floor은 내림, ceil은 올림, round는 반올림)import math x = math.trunc(2.54) y = math.trunc(3.1235) print(x) print(y) >2 >3
4. 문자열의 구성이 알파벳인지 확인하기
->isalpha() 함수 쓰기
문자열에 공백, 기호, 숫자가 있을 경우 False를 리턴하고 다 알파벳이면 True 리턴해줌ex = "Code_Angler" print(ex.isalpha()) >False(_기호가 있어서)
import math
def solution(str1, str2):
answer = 0
data1=[]
data2=[]
result=[]
str1=str1.lower()
str2=str2.lower()
for i in range(len(str1)-1):
if str1[i:i+2].isalpha()==True:
data1.append(str1[i:i+2])
#print(data1)
for i in range(len(str2)-1):
if str2[i:i+2].isalpha()==True:
data2.append(str2[i:i+2])
#print(data2)
# print(set(data1) & set(data2))#교집합
# print(set(data1) | set(data2))#합집합
data_temp = data1.copy()
data_result = data1.copy()
#다중집합의 합집합
for i in data2:
if i not in data_temp:
data_result.append(i)
else:
data_temp.remove(i)
#print(data_result)
#print(len(data_result))
#다중집합의 교집합
for i in data2:
if i in data1:
data1.remove(i)
result.append(i)
#print(result)
if (len(data_result))==0:
a = 1
else:
a= len(result)/len(data_result)
answer= math.trunc(a*65536)
#print(1/0)
return answer
#print(solution("FRANCE","french"))
#print(solution("aa1+aa2","AAAA12"))
print(solution("E=M*C^2","e=m*c^2"))
풀긴 했는데 counter함수를 썼으면 더 쉬웠을거 같다. 나중에 counter방법으로도 풀어봐야겠다.