본문 바로가기

전체 글158

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.
20210705#(60) 백준 11399 ATM (그리디) https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 책에서 그리디 문제들을 풀다보니 재밌어서 백준에서 풀어본 그리디문제.. 첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 출력한다. 가 조건인 문제이다. 그래서 만약 3 4 1 2 5가 입력되면 1 2 3 4 5 순서로 배치해야 더했을때 최소가 되는걸 확인할 수 있다. 위 1 2 3 4 5 로 배치했을때 계산 결과는 1 + (1+2) + (1+2+3) + (1+2+3+4) + (1+2+3+4+5) 이다. 내가 .. 2021. 7. 5.
20210705#(59) 책-이것이 취업을 위한 코딩 테스트다 with 파이썬 (그리디, 구현 총 4문제 풀이) 부서에 이것이 취업을 위한 코딩 테스트다 라는 책이 들어오게 돼서 야간 근무 때 한번 풀어봤다! 결국 책 주문신청하게 됨 그리디 풀고 구현풀다가 졸리기도 하고 집중이 안돼서 더 이상 풀지는 못했다.. 다음엔 더욱 많이 풀기 도전 # 이코테 큰 수의 법칙 그리디 1 counting=0 count=0 n,m,k=list(map(int,input().split())) num_list=list(map(int,input().split())) num_list.sort(reverse=True) for i in range(m): counting+=1 if counting==k: count+=num_list[1] counting=0 else: count+=num_list[0] print(count) # 이코테 숫자카드게.. 2021. 7. 5.
20210703#(58) 백준 10828번 스택 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net dfs,bfs 를 풀기전 먼저 기본적인 자료구조 개념들을 흡수하기 위해 풀어봤다!.. 첨엔 코드 이해하는게 꽤 시간이 걸렸는데 보다보니까 간단한 코드였다. import sys N=int(sys.stdin.readline()) stack=[] for _ in range(N): word=sys.stdin.readline().split() #input으로 받게 되면 시간 초과 orde.. 2021. 7. 3.