본문 바로가기
반응형

백준18

[백준] 정렬/파이썬 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.
백준11650번 11651번 파이썬 #12정렬-6)7)좌표 정렬하기 Q 11650) 내 풀이 11650번 n=int(input()) point=[] for i in range(0,n): point.append(list(map(int,input().split()))) point=sorted(point,key= lambda x: (x[0],x[1]))# 정렬 기준 1)x좌표 2)y좌표 for i in point: print(*i) Q)11651 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. -->위와 동일 단 정렬기준 y좌표로 바뀜 내풀이 11651번 import sys n=int(sys.stdin.readline()) ans=[] for i in range(n).. 2020. 10. 16.
백준10989번 파이썬 #12정렬 -3)수 정렬하기3 내가 푼 코드 초기 내가 한거 (메모리 초과) import sys n=int(sys.stdin.readline()) num=[int(sys.stdin.readline()) for i in range(n)] arr=[0]*10001 for i in num: arr[i]+=1 for k in range(0,10001): if arr[k]!=0: for t in range(arr[k]): sys.stdout.write(str(k)+'\n') -num ,arr 리스트 2개를 썼기 때문에 메모리 부분에서 오류가 났다. -sys 라이브러리를 사용함으로써 메모리 용량을 줄였다. ※sys 라이브러리 자주 사용하는 것 num=int(sys.stdin.readline())#input sys.stdout.write(str(.. 2020. 10. 14.
백준7568번 파이썬 #11브루트포스-3)덩치 내 풀이 n=int(input()) hw=[] for i in range(0,n): hw.append(list(map(int,input().split()))) ans=[] for i in range(0,n): ks=1 for k in range(0,n): if hw[i][0] 2 2 1 2 5 2) split 이용하기 print(' ', 2020. 10. 14.
백준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.
백준2798번 파이썬 #11브루트 포스-1)블랙잭 브루트포스 : 모든 경우의 수를 탐색하여 결과를 도출하는 알고리즘 장점 정확도 100% 완벽한 답 보장 단점 처리속도가 느림 오버플로우가 나올 수 있다. 관련문제풀이 #1 블랙잭 내 풀이 for문에서 앞의 기준을 연계하는 방법을 이용 n,m=map(int,input().split()) print(n,m) card=list(map(int,input().split())) max=min(card) for i in range(0,n-2): for j in range(i+1,n-1): for k in range(j+1,n): if card[i]+card[j]+card[k]=max: max=card[i]+card[j]+card[k] print(max) 다른 풀이 itertools 라이브러리 이용하기 combinat.. 2020. 10. 14.
반응형