본문 바로가기

전체 글79

백준 11866 - 요세푸스 문제 (Python) 풀이 1) list 사용 N, K = map(int, input().split()) people = [i for i in range(1, N+1)] print("") 풀이 2) deque 라이브러리 사용 from collections import deque N, K = map(int, input().split()) people = deque([i for i in range(1, N+1)]) cnt = 0 print("") 2022. 5. 27.
백준 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.
백준 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.
백준 2750 - 정렬 알고리즘 (Bubble/Selection/Insertion Sort Algorithm) Bubble Sort 시간복잡도: O(N^2) n = int(input()) numbers = list() for _ in range(n): numbers.append(int(input())) # Bubble Sort for i in range(n): for j in range(n-1): if numbers[j] > numbers[j+1]: numbers[j], numbers[j+1] = numbers[j+1], numbers[j] # for i in range(n): # for j in range(n): # if numbers[i] < numbers[j]: # numbers[i], numbers[j] = numbers[j], numbers[i] for i in numbers: print(i) Selec.. 2022. 5. 19.
백준 1018 - 체스판 다시 칠하기 (Python) 코드 n, m = map(int, input().split()) board = list() for i in range(n): board.append(input()) white_board = """WBWBWBWB BWBWBWBW WBWBWBWB BWBWBWBW WBWBWBWB BWBWBWBW WBWBWBWB BWBWBWBW""".split() black_board = """BWBWBWBW WBWBWBWB BWBWBWBW WBWBWBWB BWBWBWBW WBWBWBWB BWBWBWBW WBWBWBWB""".split() cnt_list = list() for i in range(n-7): for j in range(m-7): white_cnt = 0 for k in range(8): for l in rang.. 2022. 5. 18.