문제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 ..
문제https://www.acmicpc.net/problem/31562 해설문자열 파싱과 해시 사용이 핵심이었다. Solution 1.해시를 이용한 기본적인 방식으로 풀어보았다. def solution(songs, trial): song_dict = {song[0]: song[1] for song in songs} for t in trial: cnt = 0 matched_song = "" for k, v in song_dict.items(): if v.startswith(t): matched_song = k cnt = cnt + 1 if cnt > 1: ..