본문 바로가기

파이썬알고리즘79

20210801#(69) 이진탐색 문제 [백준 1654 랜선자르기, 이코테 떡볶이 떡 만들기] 이진탐색 parametric search : 최적화문제 https://www.acmicpc.net/problem/1654 import sys input=sys.stdin.readline k,n=list(map(int,input().split())) data=[int(input()) for _ in range(k)] left,right=1,max(data) result=0 while left=n: left=mid+1 result=mid else: right=mid-1 print(result) #2 이코테 이진탐색 문제 떡볶이 떡 만들기 2021. 8. 1.
20210713#(68) 프로그래머스 50문제 뿌수기(2) 이코테 이진탐색 1, 프로그래머스3 분발좀;;하자 # s="ZAasdgbdf" # s=list(str(s)) # s.sort() # s="".join(s) # print(s) # #대문자는 소문자보다 작은걸로 간주 # if ord(s[i] 65~90: # newarr.append(s[i]) # else: # llist.append(s[i]) # s="ZAasdsghr" # newlist=[];orilist=[] # s=list(str(s)) # for i in s: # if ord(i)>=65 and ord(i) 2021. 7. 13.
20210712#(67) 프로그래머스 50문제 뿌수기(2) 이코테 2문제+프로그래머스 3문제 월요일은 피곤하구나 #7/12 # answer="".join(s) # a="a" # print(ord(a)) # def solution(n): # melon=n//2 # answer='수박'*melon # if n%2==1: # answer+='수' # return answer # def solution(seoul): # location=seoul.index("Kim") # return "김서방은 "+str(location)+"에 있다" # def solution(s): # s=list(str(s)) # chk=True # if len(s)==4 or len(s)==6: # for i in s: # if 48>ord(i) or ord(i)>57: # chk=False #.. 2021. 7. 12.
20210711#(66) 프로그래머스 50문제 뿌수기(1) 목표 ~7/18 1단계 문제(총50문제) 풀기 #7/11 18/50 # 프로그래머스 1단계 50문제 격파 ~7/19 # https://programmers.co.kr/learn/courses/30/lessons/12954 # answer = [] # def solution(x, n): # for i in range(n): # answer.append(x) # x+=addnum # return answer # x,n=map(int,input().split()) # addnum=x # print(solution(x,n)) # https://programmers.co.kr/learn/courses/30/lessons/12950 # ans1=[] # ans2=[] # ans=[] # a=[[1,2],[2,3]].. 2021. 7. 11.
20210707#(65) 백준 10773 제로 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 날씨도 꿉꿉하고 너무 졸리다.. n=int(input()) money_list=[] for i in range(n): money=int(input()) if money==0: del money_list[len(money_list)-1] else: money_list.append(money) print(sum(money_list)) 2021. 7. 7.
20210706#(64) 백준 14659 한조서열정리하고옴ㅋㅋ (그리디) https://www.acmicpc.net/problem/14659 14659번: 한조서열정리하고옴ㅋㅋ 첫째 줄에 봉우리의 수 겸 활잡이의 수 N이 주어진다. (1 ≤ N ≤ 30,000) 둘째 줄에 N개 봉우리의 높이가 왼쪽 봉우리부터 순서대로 주어진다. (1 ≤ 높이 ≤ 100,000) 각각 봉우리의 높이는 중복 없이 www.acmicpc.net ㅋㅋㅋㅋ 문제 이름이 재밌어서 풀어본 문제 난이도는 쉬운편이다. bowmaster=int(input()) peaks=list(map(int,input().split())) kill=[] shot=0 for i in range(bowmaster): for j in range(i+1,bowmaster): if peaks[i] 2021. 7. 6.
20210706#(63) 백준 4796 캠핑 (그리디) https://www.acmicpc.net/problem/4796 4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net i=1 ans_list=[] L=P=V=1 while 1: L,P,V=list(map(int,input().split())) if L==0 or P==0 or V==0: break else: ans_list.append(int((V//P)*L+min((V%P),L))) i+=1 for i in range(len(ans_list)): print("Case",str(i+1)+':',ans_lis.. 2021. 7. 6.
20210706#(62) 백준 5585 거스름돈 (그리디) https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net N=int(input()) joi=[500,100,50,10,5,1] count=0 N=1000-N while N!=0: if N>=joi[0]: N-=joi[0] count+=1 elif N>=joi[1]: while N>=joi[1]: N-=joi[1] count+=1 elif N>=joi[2]: while N>=joi[2]: N-=joi[2] count+=1 elif N.. 2021. 7. 6.
20210705#(61) 백준 11047 동전 0 (그리디) https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 그리디 문제 잼있다 이렇게 풀면 효율이 떨어지는 것 같긴 한데 일단 풀어봤다. n,k=map(int,input().split()) coin_list=[] coin_count=0 for i in range(n): coin_list.append(int(input())) coin_list.sort(reverse=True) for i in .. 2021. 7. 5.