일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 나동빈
- 5와 6의 차이
- 대체 암호화
- 위치 암호화
- 그리디 알고리즘
- 동적 계획 알고리즘
- 전자 메일
- 키워드 암호화
- 문자 변환표
- DES 알고리즘
- 시저 암호화
- 통나무 건너기
- Greedy
- 파이썬
- 비연결형 통신
- JoCoding
- 컴퓨터 네트워크
- 세탁소 사장 동혁
- 컬럼 암호화
- 거스름돈
- 2 + 1 세일
- 사과 담기 게임
- ZOAC 2
- 한빛미디어
- Pop
- 구현
- 코딩 테스트
- 욱제는 효도쟁이야!!
- 백준
- 소가 길을 건너간 이유3
- Today
- Total
목록백준 (31)
주니어로서의 백 걸음, 개발자로서의 한 걸음

문제 풀이: 가장 큰 화폐단위부터 비교하며 액수가 큰 화폐를 최대한 많이 사용하면 된다. n = int(input()) c = 1000 - n cnt = 0 m = [500, 100, 50, 10, 5, 1] for i in m: if c == 0: break cnt += c // i c %= i print(cnt)

문제 풀이: S의 최솟값을 구하기 위해서 A배열의 가장 작은 요소와 B배열의 가장 큰 요소를 곱하고 그다음으로 작은 수와 큰 수를 반복해서 곱하고 더해주면 된다. 즉 A배열은 오름차순으로 정렬하고 B배열은 내림차순으로 정렬해서 각각 인덱스끼리 곱해서 더해주면 간단하게 풀 수 있다. 하지만!! 문제에서 B배열은 재배열하면 안 된다고 명시되어있기 때문에 다른 방법을 이용해서 풀어야 한다. A배열은 재정렬이 가능하기 때문에 A를 오름차순으로 정렬하고 B의 가장 큰 값을 뽑아서 곱해준 더하는 방식으로 문제를 해결하면 된다. n = int(input()) a_list = list(map(int, input().split())) b_list = list(map(int, input().split())) s = 0 f..

문제 풀이: 화폐 가치가 큰 것부터 비교하면서 거스름돈을 가장 크게 나누어줄 수 있는 화폐를 사용하여 동전의 개수를 구한다. n, k = map(int, input().split()) l=[0]*n cnt = 0 for i in range(n): l[i] = int(input()) l.sort(reverse=True) for i in range(n): cnt += k // l[i] k %= l[i] print(cnt)

https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제 풀이: 인출하는 데 걸리는 시간이 짧은 순서대로 하면 뒤에서 누적되어 대기하는 시간이 줄어들기 때문에 대기 시간이 적은 숫자가 앞에 가야 시간이 최소가 된다. n = int(input()) t = list(map(int, input().split())) t.sort() #두 번째 사람부터 시간이 누적된다. for i in range(1, len(t)): t[i] = t[i - 1] + t[i] print(sum(t))

https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 코드 n = input() lst = [0] * 26 for i in n: lst[ord(i)-97] += 1 for i in lst: print(i, end=' ') 해설 및 공부한 내용 파이썬 ord 함수 ord(문자) : 하나의 문자를 인자로 받고 해당 문자에 해당하는 유니코드 정수를 반환한다. ex) ord('a') = 97 n이 'baekjoon'인 경우, 첫번째 for문에서 i는 'b'가 되어 lst[ord('b')-97]은 'b'의 아스키코드 ord('b') = 98 이기 ..
반복문 for문 for 문의 기본 구조 리스트 = [1, 2, 3] for 변수 in 리스트 (또는 튜플, 문자열): print(변수) 1 2 3 리스트나 튜플, 문자열의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 안에 있는 요소를 하나씩 반복한다. 다른 언어의 for each 문과 비슷하다!!! 1. 전형적인 for문 test_list = ['one', 'two', 'three'] for i in test_list: print(i) one two three test_list 리스트의 첫 번째 요소인 'one'이 먼저 i 변수에 대입된 후 print(i) 문장을 수행한다. 다음에 두 번째 요소 'two'가 i변수에 대입된 후 print(i)문장을 수행하고 리스트의 마지막 요소까지 이것을 반..
집합 자료형 set 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형 집합 자료형 #빈 집합 자료형 선언 >>>s = set() # 원소가 있는 집합 자료형 선언 >>>s1 = set([1, 2, 3]) >>>s2 = set({1, 2, 3}) >>>s3 = {1, 2, 3} 모두 같은 집합을 만든다. #집합 자료형 연산 >>>s1 = set([1, 2, 3, 4, 5]) >>>s2 = set([3, 4, 5, 6, 7]) >>>print(s1 & s2) # 교집합 {3, 4, 5} >>>print(s1 | s2) # 합집합 {1, 2, 3, 4, 5, 6, 7} >>>print(s1 - s2) # 차집합 {1, 2} #set()괄호 안에 문자열 입력 >>>s2 = set("Hello") >>>s2 {..