Skip to content

Commit

Permalink
20240814
Browse files Browse the repository at this point in the history
  • Loading branch information
HyeonjinBae committed Aug 14, 2024
1 parent c71bc8d commit 81a5be2
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 0 deletions.
36 changes: 36 additions & 0 deletions HJBAE/11to20/19.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
"""
문자열 리스트 string_list와 쿼리 리스트 query_list가 있을 때
각 쿼리 리스트에 있는 문자열이 string_list의 문자열 리스트에 있는지 여부를 확인해야 함
문자열 있으면 True, 없으면 False
문자열의 존자 여부를 리스트 형태로 반환하는 solution() 함수를 작성
입력 문자열 영어 소문자로만
문자열 최대 길이 10^6
해시 충돌 X
p = 31, m = 1,000,000,007
"""

def find_hash(s, p = 31, m = 1_000_000_007):
hash_value = 0
pp = 1
for c in s:
hash_value = (hash_value + (ord(c) - ord('a') + 1) * pp) % m
pp = (pp * p) % m
return hash_value

def solution(string_list, query_list):
hash_set = set(find_hash(s) for s in string_list)

result = []
for query in query_list:
query_hash = find_hash(query)
result.append(query_hash in hash_set)

return result


string_list = ["apple", "banana", "cherry"]
query_list = ["banana", "kiwi", "melon", "apple"]
# return = [True, False, False, True]

print(solution(string_list, query_list))
48 changes: 48 additions & 0 deletions HJBAE/21to30/24.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
"""
각 유저 한 번에 한 명 유저 신고 가능
횟수 제한 X, 서로 다른 유저 계속 신고 가능
여러 번 신고 가능 but, 1회로 처리
k번 이상 신고되면 게시판 이용 정지되고 신고한 모든 유저한테 정지 사실 메일 발송
신고 모든 내용 취합해 한꺼번에 게시판 이용 정지시키고 메일 발송
"""

def solution(id_list, report, k):
reported_user = {}
count = {}

for content in report:
user_name, reported_name = content.split(" ")
if reported_name not in reported_user:
reported_user[reported_name] = {user_name} # 중복 피하려면 set으로 저장
else:
reported_user[reported_name].add(user_name) # set에서는 .add() 사용

for user in id_list:
count[user] = 0

for reported_name, reporters in reported_user.items():
if len(reporters) >= k:
for reporter in reporters:
count[reporter] += 1

result = list(count.values())

return result




id_list1 = ["muzi", "frodo", "apeach", "neo"]
report1 = ["muzi frodo", "apeach frodo", "frodo neo", "muzi neo", "apeach muzi"]
k1 = 2
# result1 = [2, 1, 1, 0]

print(solution(id_list1, report1, k1))


id_list2 = ["con", "ryan"]
report2 = ["ryan con", "ryan con", "ryan con", "ryan con"]
k2 = 3
# result2 = [0, 0]

print(solution(id_list2, report2, k2))

0 comments on commit 81a5be2

Please sign in to comment.