본문 바로가기

Algorithm35

프로그래머스 - 신고 결과 받기 (Python) (2022 KAKAO BLIND RECRUITMENT) 코드 def solution(id_list, report, k): answer = [] block_id = [] set_report = set(report) # 1 report_cnt = {id: 0 for id in id_list} # 2 mail_cnts = {id: 0 for id in id_list} # 3 for id in set_report: # 4 report_cnt[id.split()[1]] += 1 for i in report_cnt: # 5 if report_cnt.get(i) >= k: block_id.append(i) for i in set_report: # 6 if i.split()[1] in block_id: mail_cnts[i.split()[0]] += 1 answer = l.. 2022. 5. 22.
백준 1316 - 그룹 단어 체커 (Python) 코드 n = int(input()) cnt = 0 # 그룹 단어가 아닌 단어의 수 for i in range(n): alphabet = [0 for _ in range(123)] # 1 word = input() for a in range(len(word)): if alphabet[ord(word[a])] != 0: # 2 if word[a] != word[a-1]: # 2-1 cnt += 1 break else: # 2-2 continue alphabet[ord(word[a])] += 1 # 3 print(n-cnt) # 4 풀이 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고,.. 2022. 5. 21.
퀵 정렬 Quick Sort (Python) n = int(input()) array = list() for _ in range(n): array.append(int(input())) def quick_sort(array, start, end): if start >= end: # 원소가 1개일 경우 종료 return pivot = start # 첫 번째 원소를 pivot으로 설정 left = start+1 right = end # 왼쪽에서부터 pivot보다 큰 값 선택, 오른쪽에서부터 pivot보다 작은 값 선택 while (left right): array[right], array[pivot] = array[pivot], array[right] # left보다 right 인덱스가 크면, 서로 swap else: array[left], array[.. 2022. 5. 21.
백준 2751 - 정렬 (Python) 코드 import sys n = int(sys.stdin.readline()) num = list() for _ in range(n): num.append(int(sys.stdin.readline().rstrip())) num.sort() # num = sorted(num) for i in num: print(i) .sort() vs sorted() list.sort()는 기존 리스트를 정렬하는 함수 sorted(list)는 기존의 리스트를 그대로 두고, 새 리스트를 반환하는 함수 시간 복잡도: O(N log N) 2022. 5. 20.