Algorithm38 [백준] [Python] #1158 요세푸스 문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 자랑은 아니지만 약 3일정도 삽질을 했다.. (이 글을 보는 여러분 힘내세요! 얘도 아직 포기 안했어요!) 처음엔 빼는 K 번째로 인덱스를 나머지 연산하고... 별의별 짓을 했는데 사람list를 조작해서 무언가를 하기엔 너무 복잡하다. 왜냐하면 pop을 하면 인덱스가 바뀌는데 이걸 반영해서 인덱스를 가지고 다시 나머지 연산을 하기란 쉽지 않았다.. 그래서 찾아보니 그냥 k를 조작하는 방법이 있었다...ㅠㅜ n, k = map(int, input().split()) josephus = [i.. 2021. 9. 24. [백준] [Python] #2309 일곱 난쟁이 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 보자마자 앗 이거 9개 중 7개 permutation하면 되자나~ 이러면서 신나게 제출했는데... import itertools arr = [] for _ in range(9): arr.append(int(input())) nPr = itertools.permutations(arr, 7) for n in nPr: if sum(n) 2021. 9. 24. [백준] [Python] #11279 최대힙 https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 여러가지 뻘 짓을 하다가 애초에 이 문제는 "Heap"인 것부터 파악이 부족하다고 느꼈다. 그래서 heap구조부터 다시 공부함... heap은 binary구조로 Min_heap과 Max_heap이 있다. - Min_heap : root에 Min값이 옴 - Max_heap : root에 Max값이 옴 이 문제에서 원하는건 Max_heap인데 파이썬에 기본적으로 제공되는 heapq.. 2021. 9. 23. [백준] [Python] #10828 스택 오늘도 평화로운 알고리즘,,, 스택 정도야! First In Last Out 이제 안다 이거야~ 이정도는 금방이지~ n = int(input()) stack = [] def push(x): stack.append(x) def pop(): if len(stack) == 0: print(-1) else: print(stack.pop(-1)) def size(): print(len(stack)) def empty(): if len(stack) == 0: print(1) else: print(0) def top(): if len(stack) == 0: print(-1) else: print(stack[-1]) for _ in range(n): odr = list(map(str, input().split())) .. 2021. 9. 23. [백준] [Python] #3460 이진수 1차 제출 n = int(input()) num = [] for i in range(n): num.append(int(input())) arr = [] for i in range(n): #num을 이진수로 나타내기 while(num[i]>1): if num[i]%2==0: arr.append(0) else: arr.append(1) num[i] = num[i]//2 arr.append(num[i]) #1의 위치 출력 for i in range(len(arr)): if arr[i] == 1: print(i, end=" ") #줄바꿈 print() #arr초기화 arr = [] 2차 제출 for _ in range(int(input())): n = int(input()) i = 0 while n >0: if.. 2021. 9. 23. [백준] [Python] #10809 알파벳 찾기 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 정말 배움의 길은 멀고도 험하다... 분명 들어보고 저번 코테 준비할 때 써본 join함수인데 그치 배운걸 써야지 문명인이면...암... str = input() arr = [-1 for _ in range(26)] for i in range(len(str)): if arr[ord(str[i])-97] != -1 : continue arr[ord(str[i])-97] = i for i.. 2021. 9. 23. 이전 1 2 3 4 5 6 7 다음