본문 바로가기
반응형

알고리즘42

[백준] 정렬/파이썬 11004 K번째 수, 문자열/1110더하기싸이클 📌 11004 K번째 수 www.acmicpc.net/problem/11004 11004번: K번째 수 수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제보고 읭? 이거 받아서 정렬하고 인덱스로 풀면 되겠는데,,, 햇지만 매우 찜찜해햇다. 시간초과를 걱정하며 넣었는데 일단 통과. 내 풀이 import sys input = sys.stdin.readline; n,k = map(int,input().split()) num = list(map(int,input().split())) num.sort() print(num[k-1]) < 하지만 살짝 처참한 시간 결과... 랭크정렬로 해볼까 했지만.. 2021. 4. 21.
[백준] 정렬 /파이썬 2217 로프, 1764 듣보잡 📌 2217 로프 www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 처음 생각 n 개수를 받은후 돌면서 최대 중량을 list로 받음 제일 작은 최대 중량 * n 개가 로프들의 최대중량이라고 생각 import sys input= sys.stdin.readline n=int(input()) weight = list(int(input()) for _ in range(n)) weight.sort(); print(weight[0]*n) 역시나 오답. 오류: 로.. 2021. 4. 20.
[백준] 정렬 /파이썬 - 2108 통계학 import sys input = sys.stdin.readline from collections import Counter n = int(input()) num_list = [int(input()) for _ in range(n)] ans=[] a=[] q = [0]*8001 for i in num_list: q[i+4000]+=1 qmax = max(q) for i in range(8001): if q[i] == qmax: a.append(i-4000) a.sort() ans.append(round(sum(num_list)/n)) ans.append(sorted(num_list)[n//2]) if len(a)==1: ans.append(a[0]) else: ans.append(a[1]) ans.app.. 2021. 4. 20.
[백준] 정렬 /파이썬 - 1427, 10989, 1931, 1181, 11650 📌 1427번 소트인사이드 www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 내 풀이 inp_arr = input() ans=[] for i in inp_arr: ans.append(i) ans.sort(reverse=True) ans="".join(ans) print(ans) 다른 풀이 inp_arr = list(input()) inp_arr.sort(key=int , reverse=True) print(''.join(inp_arr)) inp_arr를 처음부터 list로 받아서 int 기준으로 정렬한 후에 문자열로 바꾸어 출력 📌 10989번 수.. 2021. 4. 18.
빅 오 표기법이란(Big O) - 알고리즘과 시간복잡도로 보는 빅 오 표기법 빅 오 표기법 ( Big O ) 알고리즘의 효율성을 표기하는 표기법 데이터(n)개가 주어졌을 때 + - * / 같은 기본 연산의 횟수 의미 빅오 표기법 주 사용처 시간복잡도 공간복잡도 알고리즘의 시간 효율성 알고리즘이 수행된느 시간 알고리즘의 메모리 효율성 알고리즘을 수행하기 위해 사용되는 메모리 양 ex) 내가 5,000원을 가지고 있을때 표현 방식 빅오(Big-O) 빅오메가(big-Ω) 빅세타(big-Θ) "나는 10,000원 보다 적게 있어" "나는 10원 이상은 있어" "한 3,000원에서 7,000원 사이?" 시간복잡도로 보는 Big O 빅오 표기법 T(n) 시간복잡도 함수 연산 횟수가 얼마나 변하는 지 그 정도를 판단 데이터의 개수 : n 즉 최고항의 차수 = Big O 임 시간복잡도의 성능 .. 2021. 1. 11.
백준2231번 파이썬 #11브루트포스-2)분해합 내 풀이 한자리수는 생성자가 될 수 없으니 10ㅂ n=int(input()) ans=[] for i in range(10,n+1):# 한 자리수 생성자 불가하니 10부터 시작 t=0 f=i# n을 str으로 받아서 높은 자리부터 for문 for k in range(len(str(i))-1,-1,-1): t=t+f//(10**k)# t에 각 자리수의 합을 더함 f=f%(10**k)# f에 나머지 인가 if t+i==n:# ex) 198: 198+1+9+8==216 ans.append(i) if not ans:# ans 없으면 0 print(0) else: print(min(ans)) 다른 풀이 n=int(input()) total=0 answer=0 for i in range (10,n): num=i to.. 2020. 10. 14.
반응형