본문 바로가기

알고리즘 풀이79

[알고리즘] 프로그래머스 | 신고 결과 받기 신고 결과 받기 답: 더보기 def solution(id_list, report, k): result = {} reported_log = {} stop = [] answer = [0] * len(id_list) # 중복값 삭제 및 정렬 report = sorted(list(set(report))) # result 신고횟수 셀 dict생성 for i in id_list: result[i] = 0 # reported_log 신고한 유저 key, 신고당한 user는 value list로 추가 for r in report: user_id, reported_id = r.split(" ") # print(user_id, reported_id) if not user_id in reported_log: reported.. 2023. 8. 26.
[알고리즘] 프로그래머스 | JadenCase 문자열 만들기 JadenCase 문자열 만들기 답: 더보기 def solution(s): new_list = [] s_list = s.split(" ") for st in s_list: if st == " ": new_list.append(" ") else: new_list.append(st[:1].upper() + st[1:].lower()) #st[0]으로 하면 오류가 남.. new_s = " ".join(new_list) return new_s 리팩토링 - st[0]-> st[:1]로 바꾸면서 if문이 필요없어졌음 def solution(s): new_list = [] s_list = s.split(" ") for st in s_list: new_list.append(st[:1].upper() + st[1:].l.. 2023. 8. 25.
[알고리즘] 프로그래머스 | 숫자의 표현 숫자의 표현 답: 더보기 def solution(n): count = 1 for number in range(1, n // 2 + 2): result = 0 for num in range(number, n): result += num if result == n: count += 1 break elif result > n: break return count 문제 분석 및 해석 자연수 n이 주어질 때, 연속하는 수를 더해 n이 나오는 가짓수 구하기 ex) n = 15 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 >> 풀이생각 일단 자기 자신 count + 1 1 ~ n-1까지.. 1로 시작해 2~ 차례로 더하도록 하기 : for문? 1부터 배열? 혹은.. 2023. 8. 24.
[알고리즘] 프로그래머스 | 체육복 lv.1 체육복 답: 더보기 def solution(n, lost, reserve): real_lost = sorted(list(set(lost) - set(reserve))) real_reserve = sorted(list(set(reserve) - set(lost))) # lost에 들어있는 요소 -1혹은 +1이 reserve에 있는지 확인 for l in real_lost: if (l-1) in real_reserve: real_reserve.remove(l-1) elif (l+1) in real_reserve: real_reserve.remove(l+1) else: n -= 1 return n 문제 분석 및 해석 일부 학생이 체육복을 도난 당함 여벌 체육복이 있는 학생이 빌려주기로 했는데, 체격 차로 바로.. 2023. 8. 23.