문제https://www.acmicpc.net/problem/12605 해설간단한 문자열 뒤집기였다. 여러 가지 방식으로 접근하여 문제를 해결해 보았다. Solution 1.스택을 사용하여 하나씩 pop 하는 걸 의도했을지도 모르겠지만 제목 그대로 나는 단어순서만 역정렬하여 해결하였다. def solution(lst): for i, s in enumerate(lst): sentence = " ".join(s) print(f"Case #{i+1}: {sentence}")cnt = int(input())sentences = [input().split(" ")[::-1] for _ in range(cnt)]solution(sentences) Solution 2.아무 쓸모도 없고..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해설시간복잡도로 인해 개자 작성하던 코드의 시간 복잡도가 \( O(n^2) \)로 수렴하여 Timeout fail이 발생하였다. 이를 해결하기 위해 Counter 함수 사용으로 \( O(n) \)으로 수렴하도록 하는 것이 핵심이었다. Solution 1.collections 패키지를 이용하여 Counter 메소드를 활용해보았다. import collectionsdef solution(participant, co..
문제https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해설def solution(nums): select_cnt = len(nums)//2 diff_cnt = len(set(nums)) if select_cnt
문제https://www.acmicpc.net/problem/9933 해설교집합 사용이 핵심이었다. def solution(lst): inverted = [p[::-1] for p in lst] intersection = list(set(lst) & set(inverted)) print(f"{len(intersection[0])} {intersection[0][len(intersection[0])//2]}")cnt = int(input())passwords = [input() for _ in range(cnt)]solution(passwords)
문제https://www.acmicpc.net/problem/25593 해설문자열 파싱과 해시 사용이 핵심이었다. def solution(schedule): work_time = [4, 6, 4, 10] schedule_dict = dict() for i, s in enumerate(schedule): work = work_time[i % 4] for name in s: if name in schedule_dict: schedule_dict[name] = schedule_dict[name] + work else: schedule_dict[name] = work if ..