baekjoon 83

[백준 1654] 랜선 자르기 - python (solved.ac - 실버 3)

풀이 문제를 보았을때 알수있는 힌트 n개의 랜선이 있는데 k개의 똑같은 길이의 랜선을 만들려고한다. 이때 최대 길이를 구하라 k는 10,000이하 n은 1,000,000이하의 정수이다. 이를 보았을때 어떻게 하면 최대 길이를 찾을수있을까? 최대길이에서 1씩 하나씩 빼가며 확인한다? 결과는 나오겠지만 시간 초과가 될것같다. 그러면 좀더 빠르게 찾기 위해서는 어떻게 할까? 이진탐색을 통해 O(log n)으로 해결할 수 있다. 최소와 최대를 정하고 가운데에서 초과하면 가운데를 최대로 바꾸고 그렇지 않으면 가운데를 최소로 변경하여 최대길이를 찾을수있다. import sys input = sys.stdin.readline k,n=list(map(int,input().split(" "))) lenline=[] fo..

[백준 1316] 그룹 단어 체커 - python (solved.ac - 실버 5)

풀이 문제를 보았을때 알수있는 힌트 문자를 다루는 문제 입력에서 n이 최대 100개, 최대 길이가 100 이기에 100*100으로 10000으로 시간제한 2초안에 O(n2)까지는 가능할것이다. 처음 단어부터 시작해서 이어서 나오는 경우는 넘어가고 다른 단어가 나오고 이전 단어가 또 나오면 false를 통해 그룹 단어로 체크하지 않는다. import sys from collections import Counter input = sys.stdin.readline n = int(input()) result=0 for i in range(n): word = list(input().strip()) counter = Counter(word) count=0 temp=word[0] group_bool=True for ..

728x90