본문 바로가기

공부하는 것들/알고리즘

(52)
백준 5543 : 상근날드 www.acmicpc.net/problem/5543 5543번: 상근날드 입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가 www.acmicpc.net 문제 요약: 버거 세 종류의 가격과, 음료 두 종류의 가격이 주어짐. 버거1+음료1 구매시 세트 할인 적용, 가격의 합계에서 50원 할인해줌. 가장 싼 세트 메뉴의 가격은? --> 버거 중 최솟값과 음료 중 최솟값을 더하면 됨. if __name__=='__main__': prices = [] for i in range(5): prices.append(int(input())) burger = min(prices[:3]..
백준 5532 : 방학 숙제 www.acmicpc.net/problem/5532 5532번: 방학 숙제 한 줄에 하나씩 총 다섯 줄에 걸쳐 L, A, B, C, D가 주어진다. (2 ≤ L ≤ 40, 1 ≤ A, B ≤ 1000, 1 ≤ C, D ≤ 100) 항상 방학 숙제를 방학 기간내에 다 할 수 있는 경우만 입력으로 주어진다. www.acmicpc.net 방학 L일 풀어야 하는 양: [ A, B ] 국어 A페이지, 수학 B페이지 하루에 풀 수 있는 양 : [C, D] 국어, 수학 놀 수 있는 최대 일수는? if __name__=='__main__': lst = [] for i in range(5): lst.append(int(input())) L,A,B,C,D = lst ans_K = A//C # 국어숙제 하는 데 필요한 일수..
백준 4299 : AFC 윔블던 ** www.acmicpc.net/problem/4299 4299번: AFC 윔블던 원섭이는 잉글랜드 4부리그 풋볼 리그 2에서 활약하는 AFC 윔블던을 좋아한다. 이 팀은 2002년 윔블던 FC가 밀턴 킨스로 연고 이전을 감행하자 윔블던의 서포터들이 스스로 나서 창단한 팀이다. 윔 www.acmicpc.net 문제 요약: 두 팀이 경기를 한 후, 두 팀이 득점한 점수의 합과 차를 알려준다. 이 때, 점수가 높은 순으로 출력하라. 단, 적당한 경기 결과가 없다면, -1을 출력. Input : N, M --> x+y = N, x-y = M --> x = (N+M)/2 , y = (N-M)/2 Output : reverse_sorted([x,y]) 고려해야 할 점 : 적당한 경기 결과가 없을 경우 1. 해가 정수..
백준 2753 : 윤년 www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 문장이 좀 헷갈리는데, 그대로 따라 구현해주면 된다. elif에는 문장 그대로 하면 Year%4==0 and Year%400==0이어야 하는데, 어차피 400의 배수면 4의 배수여서 Year%4==0은 생략했다. if __name__=='__main__': Year = int(input()) if Year%4 == 0 and Year%100!=0 : print(1) elif Year%400==0: pr..
백준 2752 : 세수정렬 www.acmicpc.net/problem/2752 2752번: 세수정렬 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. www.acmicpc.net if __name__=='__main__': lst = list(map(int,input().split())) lst = sorted(lst) for num in lst: print(num, end = ' ') # 다른 사람들의 코드를 참고했다. 이렇게 하면 한 줄에 끝낼 수 있다. # print(*sorted(list(map(int, input().split()))))
백준 2588 : 곱셈 www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net if __name__ =='__main__': n = int(input()) m = str(input()) answer = 0 for i in range(1,len(m)+1): ans = n*int(m[-i]) print(ans) answer += ans*10**(i-1) print(answer) 일의자리, 십의자리, 백의자리 순으로 n과 곱해서 print해주고, 각각의 자리수에 맞게 1,10,100을 곱해서 최종 answer 을 만든다.
백준 2530 : 인공지능 시계 www.acmicpc.net/problem/2530 2530번: 인공지능 시계 첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0 www.acmicpc.net 이전 문제랑 비슷한 시간 계산 문제다. if __name__=='__main__': h,m,s = list(map(int,input().split())) time = int(input()) s_hour = time//3600 s_minute = (time - s_hour*3600)//60 s_second = (time - s_hour*3600 - s_minute*60)%60 # == a..
백준 2525 : 오븐 시계 www.acmicpc.net/problem/2525 2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net 단순한 시간 계산 문제인데, 분이 시간으로 넘어갈 때, 시간이 24시를 넘어갈 때 자릿수가 올림 되는 걸 두 번 고려해줘야 한다. if __name__=='__main__': hour, minute = list(map(int,input().split())) time = int(input()) spent_hour = time//60 spent_minute = time%60 ans =[(hour+spe..