백준 파이썬 Today I Learn 2023.07.01
7/ 01 파이썬 공부
1. 백준 9772 Quadrants
Given the coordinates (x,y) of some points in 2-dimensional plane, find out which quadrant(Q1-Q4) the points are located. If a point is located on X-axis or Y-axis, print out AXIS instead.
Each line contains a pair of real numbers which is the coordinate of a point.
Input is terminated by 0 0.
Print out in each line Q1, Q2, Q3, Q4 or AXIS for each point.
>>>해석
2차원 평면에서 어떤 점들의 좌표(x,y)가 주어졌을 때, 그 점들이 어느 사분면(Q1-Q4)에 있는지 알아내십시오. 점이 X축이나 Y축에 있으면 대신 AXIS를 출력합니다.
각 라인에는 점의 좌표인 실수 쌍이 포함되어 있습니다.
입력은 0 0으로 종료됩니다.
각 포인트에 대해 Q1, Q2, Q3, Q4 또는 AXIS를 각 줄에 인쇄하십시오.
>>>코드
while True:
x, y = map(float, input().split())
if x == 0 and y == 0:
print('AXIS')
break
elif x == 0 or y == 0:
print('AXIS')
elif x > 0 and y > 0:
print('Q1')
elif x < 0 and y > 0:
print('Q2')
elif x < 0 and y < 0:
print('Q3')
else:
print('Q4')
2. 백준 13580 Andando no tempo
Imagine que você tenha uma máquina do tempo que pode ser usada no máximo três vezes, e a cada uso da máquina você pode escolher voltar para o passado ou ir para o futuro. A máquina possui três créditos fixos; cada crédito representa uma certa quantidade de anos, e pode ser usado para ir essa quantidade de anos para o passado ou para o futuro. Você pode fazer uma, duas ou três viagens, e cada um desses três créditos pode ser usado uma vez apenas. Por exemplo, se os créditos forem 5, 12 e 9, você poderia decidir fazer duas viagens: ir 5 anos para o futuro e, depois, voltar 9 anos para o passado. Dessa forma, você terminaria quatro anos no passado, em 2012. Também poderia fazer três viagens, todas indo para o futuro, usando os créditos em qualquer ordem, terminando em 2042.
Neste problema, dados os valores dos três créditos da máquina, seu programa deve dizer se é ou não possível viajar no tempo e voltar para o presente, fazendo pelo menos uma viagem e, no máximo, três viagens; sempre usando cada um dos três créditos no máximo uma vez.
A entrada consiste de uma linha contendo os valores dos três créditos A, B e C.
Restrições
1 ≤ A, B, C ≤ 1000
Seu programa deve imprimir uma linha contendo o caracter “S” se é possível viajar e voltar para o presente, ou “N” caso contrário.
>>>해석
한 번 사용할 때마다 과거로 갈지 미래로 갈지 정할 수 있는 타임머신을 총 세 번까지 쓸 수 있다고 가정합시다.
타임머신에는 세 개의 고정된 수가 있습니다;
각 수는 당신이 과거로 또는 미래로 이동할 때 뛰어넘는 햇수를 의미합니다.
당신은 한 번, 두 번, 또는 세 번의 여행을 할 수 있지만, 세 개의 수는 오직 한 번만 쓰일 수 있습니다.
예를 들어 세 개의 수가 5, 12, 9면 당신은 다음과 같이 두 번 여행할 수 있습니다:
5년 뒤의 미래로 갔다가, 그때로부터 9년 전의 과거로 이동하기.
결과적으로 당신은 4년 전의 과거인 2012년에 있게 될 것입니다.
만약 당신이 세 개의 수를 어떤 순서로 쓰든 세 번의 여행을 모두 미래로 떠난다면 2042년에 도착하게 됩니다.
이 문제에서 타임머신에 부여된 세 개의 수가 주어졌을 때, 당신의 프로그램은 최소 한 번에서 최대 세 번 시간 여행을 했다가 현재로 되돌아올 수 있는지 판단해야 합니다; 항상 세 개의 수는 최대 한 번만 쓰일 수 있습니다.
한 줄에 세 수 A, B, C가 주어집니다. (1 <= A, B, C <= 1000)
현재로 되돌아올 수 있으면 "S", 아니면 "N"을 출력합니다.
>>>코드
a, b, c = map(int, input().split())
if a == b or b == c or c == a or max(a,b,c) == a + b + c - max(a,b,c):
print('S')
else:
print('N')
3. 백준
O novo prédio da Sociedade Brasileira de Computação (SBC) possui 3 andares. Em determinadas épocas do ano, os funcionários da SBC bebem muito café. Por conta disso, a presidência da SBC decidiu presentear os funcionários com uma nova máquina de expresso. Esta máquina deve ser instalada em um dos 3 andares, mas a instalação deve ser feita de forma que as pessoas não percam muito tempo subindo e descendo escadas.
Cada funcionário da SBC bebe 1 café expresso por dia. Ele precisa ir do andar onde trabalha até o andar onde está a máquina e voltar para seu posto de trabalho. Todo funcionário leva 1 minuto para subir ou descer um andar. Como a SBC se importa muito com a eficiência, ela quer posicionar a máquina de forma a minimizar o tempo total gasto subindo e descendo escadas.
Sua tarefa é ajudar a diretoria a posicionar a máquina de forma a minimizar o tempo total gasto pelos funcionários subindo e descendo escadas.
A entrada consiste em 3 números, A1, A2, A3 (0 ≤ A1, A2, A3 ≤ 1000), um por linha, onde Ai representa o número de pessoas que trabalham no i-ésimo andar.
Seu programa deve imprimir uma única linha, contendo o número total de minutos a serem gastos com o melhor posicionamento possível da máquina.
>>>해석
브라질 컴퓨터 공동체(SBC)의 새 건물은 3층입니다. 특정 기간에 SBC 직원은 엄청난 양의 커피를 마십니다. 따라서 SBC의 회장은 직원에게 새 에스프레소 기계를 선물하기로 했습니다. 기계는 세 층 중 하나에 설치되어야 하는데, 사람이 계단을 오르내리는데 너무 오랜 시간을 소모하지 않도록 설치되어야 합니다.
각 SBC 직원은 하루에 에스프레소 한 잔을 마십니다.
직원은 자신이 일하는 층에서 기계가 있는 층으로 갔다가 다시 자신이 일하는 층으로 돌아와야 합니다.
직원이 한 층을 내려가거나 올라가는 데는 1분이 걸립니다. SBC는 효율성에 많은 신경을 쓰고 있기에, 계단을 오르내리는 시간을 최소화하는 방향으로 기계를 배치하려 합니다. 당신의 목표는 이사진을 도와 직원이 계단을 오르내리는 데 드는 시간이 최소가 되도록 기계를 배치하는 것입니다.
입력으로 세 수 A1, A2, A3 (0 <= A1, A2, A3 <= 1000)가 한 줄마다 주어지는데,
Ai는 i층에서 일하고 있는 사람의 수를 의미합니다.
가장 이상적으로 기계를 배치했을 때 소비되는 총 시간을 한 줄에 출력합니다.
>>>코드
a1 = int(input())
a2 = int(input())
a3 = int(input())
r1 = 2 * a2 + 4 * a3
r2 = 2 * a1 + 2 * a3
r3 = 4 * a1 + 2 * a2
print(min(r1,r2,r3))