본문 바로가기

👩🏻‍💻 Front-end/👾 Algorithm53

백준 1966 - 프린터 큐 (Python) 코드 from sys import stdin test_case = int(stdin.readline()) for _ in range(test_case): # n: 문서의 개수 # m: 몇 번째로 인쇄되었는지 궁금한 문서 # imp: 각 문서의 중요도 # idx: 인쇄 명령을 받은 순서 n, m = map(int, stdin.readline().split()) imp = list(map(int, stdin.readline().split())) idx = [i for i in range(n)] order = 0 while(True): if imp[0] == max(imp): # 1 order += 1 if idx[0] != m: # 2 del imp[0] del idx[0] else: # 3 print(or.. 2022. 5. 25.
프로그래머스 - 신고 결과 받기 (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.