일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- wargame
- 구현
- Incognito
- Python
- Web Hacking
- N0Named
- Text
- Digital Forensics
- 수학
- Forensics
- php
- C
- MySQL
- 그리디 알고리즘
- Web
- cryptography
- SuNiNaTas
- misc
- HackCTF
- 문자열
- Database
- 정렬
- writeup
- 사칙연산
- CTF
- 써니나타스
- xcz.kr
- Network
- 백준
- 인코그니토
- Today
- Total
목록그리디 알고리즘 (9)
보안을 그리다, 훈이
[Baekjoon/Python3] 15904번 UCPC는 무엇의 약자일까? www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 처음 문제를 읽었을 때, 문자열의 대문자만 필터링 한 값이 'UCPC'인지, 아닌지를 구하는 문제로 인식했고 아래 코드를 제출했다. s = input() u = '' alp = [chr(i) for i in range(65, 91)] for i in s: if i in alp: u += i if u == 'UCPC..
[Baekjoon/Python3] 14916번 거스름돈 www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net n = int(input()) res = 0 if n in [1, 3]: res = -1 elif (n % 5) % 2 == 0: res = n // 5 + (n % 5) // 2 else: res = (n // 5 - 1) + ((n % 5 + 5) // 2) print(res)
[Baekjoon/Python3] 14720번 우유 축제 www.acmicpc.net/problem/14720 14720번: 우유 축제 영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후 www.acmicpc.net n = int(input()) store = list(map(int, input().split())) cnt = 0 for i in range(n): if store[i] == cnt % 3: cnt += 1 print(cnt) n = int(input()) store = list(map(int, input().split())) i, cnt = 0, 0 fo..
[Baekjoon/Python3] 11508번 2+1 세일 www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net n = int(input()) price = [int(input()) for i in range(n)] price.sort(reverse=True) total = 0 for i in range(n): if i % 3 != 2: total += price[i] print(total)
[Baekjoon/Python3] 11399번 ATM www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net n = int(input()) time = list(map(int, input().split())) t = 0 res = 0 for i in range(n): t += min(time) res += t time.remove(min(time)) print(res)
[Baekjoon/Python3] 11047번 동전 0 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()) value = [int(input()) for i in range(n)] coin = 0 for v in reversed(value): # reversed() if k: coin += k // v k %= v print(coin)
[Baekjoon/Python3] 5585번 거스름돈 www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net value = [500, 100, 50, 10, 5, 1] change = 1000 - int(input()) coin = 0 for v in value: if change: coin += change // v change %= v print(coin) change = 1000 - int(input()) coin = 0 while cha..
[Baekjoon/Python3] 4796번 캠핑 www.acmicpc.net/problem/4796 4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net enum = 0 while True: day = 0 a, b, c = map(int, input().split()) if (a, b, c) == (0, 0, 0): break else: enum += 1 day = (c // b) * a if a > (c % b): day += c % b else: day += a print('Case {}: {}'.for..
[Baekjoon/Python3] 2839번 설탕 배달 www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net n = int(input()) cnt = 0 cnt += n // 5 n %= 5 for i in range(cnt): if n % 3: cnt -= 1 n += 5 else: break if n % 3: print(-1) else: cnt += n // 3 print(cnt)