목록 전체 글 (304)
KEEP GOING

1. innerCode.py import random marks = ['spades', 'diamonds', 'hearts', 'clubs'] card_english = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] # 파일 입출력 def load(): try: f = open("money.dat", 'r') return int(f.readline()) except FileNotFoundError: f = open("money.dat", 'w') f.write('100000') return 100000 def write(money): f = open("money.dat", 'w') f.write(money) f.close() # 결..

1. 게임 설명 카드의 합이 21점 또는 21점에 가장 가깝게 만들면 승리하고, 21을 초과하면 패배하는 베팅 게임이다. 플레이어는 매 승부마다 원하는 만큼 돈을 베팅할 수 있다. 1)플레이어는 시작 전 원하는 만큼 베팅한 후 카드 두 장을 받는다, 2)이때 두 카드의 합이 21를 초과할 경우 승부 없이 Bust가 되어 패배한다. 카드 합이 21일 경우, 플레이어의 승리로 Black Jack이 되어 배팅한 금액의 2.5배를 지급 받는다. 3)플레이어는 Hit(카드 추가)또는 Stay(승부)를 할 수 있다, Hit를 하는 경우, 카드의 합이 21를 초과할 경우 승부 없이 Bust가 되어 패배한다. 4)승부 시 플레이어의 카드 합이 딜러의 카드 합보다 높다면 승리하며 배팅한 금액의 두배를 얻는다. 만약 플레..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 코드 구현 import sys import heapq n = int(sys.stdin.readline()) h = [] for _ in range(n): data = int(sys.stdin.readline()) if data != 0: heapq.heappush(h,(abs(data),data)) else: if not h: print(0) else: print(hea..
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 문제 널리 잘 알려진 자료구조 중 최대 힙이 있다. 최대 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 큰 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를..
https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 문제 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입력 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. 출력 A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다. import sys a,b = map(int, sys.stdin.readline().split()) cnt=0 while True: if b%10==1: b=..
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 1. 코드 import sys box = [-1]*5001 box[3] = 1 box[5] = 1 n = int(sys.stdin.readline()) for i in range(6,n+1): if box[i-3] != -1: box[i] = box[i-3] + 1 if box[i-5] != -1: box[i] = box[i-5] + 1 print(box[n]) 처음에 틀린 이유는 if 문에서 if i%3 ..

start: 1 end: 4로 가정 출발 노드로부터 각 노드에 도작하기까지 걸리는 최단 경로를 구하자 일반적으로 distance 값은 10억 미만으로 주어진다. 방문하지 않은 노드 중에 가장 짧은 거리인 노드를 구하는 경우, 가장 짧은 거리가 중복으로 여러 개 일 수도 있다. 이때 통상적으로 노드 번호가 작은 경우를 가장 짧은 노드로 선택한다. 1. 구현된 코드와 동일한 폴더 안에 a.txt로 저장한다. 6 10 1 1 2 2 1 6 3 2 4 4 2 3 1 3 4 2 4 1 4 4 5 1 5 6 1 6 2 5 6 5 1 2. 코드 구현 n,m = map(int, input().split()) start = int(sys.stdin.readline()) INF = 1e9 graph = [[] for _ ..
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 예제 입력 1 복사 2 예제 출력 1 복사 1 예제 입력 2 복사 10 예제 출력..