Python 298

[파이썬/python] 백준 14487번 욱제는 효도쟁이야!!

문제 욱제는 KOI를 망친 기념으로 부모님과 함께 코드게이트 섬으로 여행을 떠났다. 코드게이트 섬에는 오징어로 유명한 준오마을(심술쟁이 해커 임준오 아님), 밥으로 유명한 재훈마을, 영중마을 등 많은 관광지들이 있다. 욱제는 부모님을 모시고 코드게이트 섬을 관광하려고 한다. 코드게이트 섬은 해안가를 따라 원형으로 마을들이 위치해있다. 임의의 A마을에서 임의의 B마을로 가기 위해서는 왼쪽 또는 오른쪽 도로를 통해 해안가를 따라 섬을 돌아야 한다. 섬을 빙빙 도는 원형의 길 외에 다른 길은 존재하지 않는다. 각 마을에서 마을까지의 이동비용이 주어질 때, 욱제가 최소한의 이동비용으로 부모님을 모시고 섬의 모든 마을을 관광하려면 얼마의 이동비용을 준비해야하는지 알려주자. 입력 첫째 줄에 마을의 수 n이 주어진다..

[파이썬/python] 백준 5613번 계산기 프로그램

문제 덧셈, 뺄셈, 곱셈, 나눗셈을 할 수 있는 계산기 프로그램을 만드시오. 입력 입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출력한다. 주어지는 수는 108 이하의 양의 정수이다. 계산 중 결과는 0 또는 음수가 될 수 있지만, -108 ~ 108 범위를 넘지는 않는다. 또, 나눗셈에서 소수점은 버린다. 따라서, 100/3*3 = 99이다. 피제수가 음수일 때 나눗셈을 하는 경우는 입력으로 주어지지 않는다. ex) 1 + 1 = 10 - 21 * 5 = 출력 첫째 줄에 계산 결과를 출력한다. ex) 2 -55 코드 import sys num=int..

[파이썬/python] 백준 25628번 햄버거 만들기

문제 햄버거 가게에서 일하는 종현이는 햄버거를 만드는 일을 하고 있다. 가게에는 햄버거 빵이 A$A$개, 햄버거 패티가 B$B$개 있는데, 이 빵과 패티를 가지고 최대한 햄버거를 많이 만드려고 한다. 햄버거를 만드는 과정은 아주 간단한 세 단계로 이루어져 있다. 그릇 위에 빵을 놓는다. 빵 위에 패티를 올린다. 패티 위에 다시 빵을 올려서 햄버거를 완성시킨다. 햄버거 빵 A$A$개와 햄버거 패티 B$B$개로 만들 수 있는 햄버거의 최대 개수는 얼마일까? 단, 햄버거 빵은 위에 놓는 빵과 아래에 놓는 빵의 구분이 없으며, 남는 빵이나 패티가 있어도 된다. 입력 첫째 줄에 햄버거 빵의 개수와 햄버거 패티의 개수를 의미하는 A,B(1≤A,B≤100)$A, B (1\le A, B \le 100)$가 주어진다. ..

[파이썬/python] 백준 4999번 아!

문제 재환이는 저스틴 비버 콘서트에서 소리를 너무 많이 질러서 인후염에 걸렸다. 의사는 재환이에게 "aaah"를 말해보라고 시켰다. 안타깝게도 재환이는 의사가 원하는만큼 소리를 길게 낼 수 없는 경우가 있었다. 각각의 의사는 재환이에게 특정한 길이의 "aah"를 말해보라고 요청한다. 어떤 의사는 "aaaaaah"를 요구하기도 하고, "h"만 요구하는 의사도 있다. 모든 의사는 자신이 원하는 길이의 "aah"를 듣지 못하면 진단을 내릴 수 없다. 따라서, 재환이는 집에서 자신이 얼마나 길게 "aah"를 낼 수 있는지 알아냈고, 자기가 소리낼 수 있는 길이의 "aah"를 요구하는 의사를 방문하려고 한다. 재환이가 낼 수 있는 "aah"의 길이와 의사가 요구하는 길이가 주어진다. 이때, 그 병원에 가야하는지 ..

[파이썬/python] 백준 5523번 경기 결과

문제 A와 B가 게임을 한다. 게임은 N번의 라운드로 이루어져 있다. 각 라운드에서는, 더 많은 점수를 얻은 사람이 그 라운드의 승자가 된다. 즉, A의 점수가 B의 점수보다 크면 i번째 라운드는 A의 승리이며, B의 점수가 A의 점수보다 크면 i번째 라운드는 B의 승리이다. 무승부인 경우에는 아무도 승리하지 않는다. N번의 라운드에서의 A와 B의 점수가 주어졌을 때, A가 이긴 횟수와, B가 이긴 횟수를 출력하는 프로그램을 만들어라. 입력 첫째 줄에는 정수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터는 정수 Ai, Bi (0 ≤ Ai, Bi ≤ 100)가 공백을 사이에 두고 차례대로 주어진다. ex) 4 100 0 5 6 40 50 74 75 5 20 20 3 95 60 59 40 4..

[파이썬/python] 백준 2965번 캥거루 세마리

문제 캥거루 세 마리가 사막에서 놀고 있다. 사막에는 수직선이 하나 있고, 캥거루는 서로 다른 한 좌표 위에 있다. 한 번 움직일 때, 바깥쪽의 두 캥거루 중 한 마리가 다른 두 캥거루 사이의 정수 좌표로 점프한다. 한 좌표 위에 있는 캥거루가 두 마리 이상일 수는 없다. 캥거루는 최대 몇 번 움직일 수 있을까? 입력 첫째 줄에 세 캥거루의 초기 위치 A, B, C가 주어진다. (0 < A < B < C < 100) ex) 2 3 5 3 5 9 출력 캥거루가 최대 몇 번 움직일 수 있는지 출력한다. ex) 1 3 코드 import sys a,b,c=map(int, sys.stdin.readline().split()) Max=max(b-a,c-b) print(Max-1)

[파이썬/python] 백준 6131번 완전 제곱수

문제 상근이는 선영이와 함께 게임을 하고 있다. 먼저, 상근이는 두 양의 정수 A와 B를 고른다. (1 ≤ B ≤ A ≤ 500) 그 다음, 선영이는 상근이가 고른 수를 맞춰야 한다. 상근이는 선영이에게 다음과 같은 힌트를 주었다. A의 제곱은 B의 제곱보다 N만큼 커 (1 ≤ N ≤ 1,000) 위의 힌트 조건을 만족하는 A와 B 쌍의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. ex) 15 출력 상근이의 힌트 조건을 만족하는 (A,B) 쌍의 개수를 출력한다. ex) 2 코드 import sys n=int(sys.stdin.readline()) count=0 for i in range(1,n): if i**2 - (i-1)**2 > n: break for j in range(1..

[파이썬/python] 백준 25305번 커트라인

문제 2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N명의 학생들이 응시했다. 이들 중 점수가 가장 높은 k명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라. 커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다. 입력 첫째 줄에는 응시자의 수 N과 상을 받는 사람의 수 k가 공백을 사이에 두고 주어진다. 둘째 줄에는 각 학생의 점수 x가 공백을 사이에 두고 주어진다. ex) 5 2 100 76 85 93 98 출력 상을 받는 커트라인을 출력하라. ex) 98 코드 import sys n,k=map(int, sys.stdin.readline().split()) num=list(map(int, sys.stdin.readline()...

[파이썬/python] 백준 1547번 공

문제 세준이는 컵 3개를 탁자 위에 일렬로 엎어놓았다. 컵의 번호는 맨 왼쪽 컵부터 순서대로 1번, 2번 3번이고, 세준이는 이 컵을 이용해서 게임을 하려고 한다. 먼저 1번 컵의 아래에 공을 하나 넣는다. 세준이는 두 컵을 고른 다음, 그 위치를 맞바꾸려고 한다. 예를 들어, 고른 컵이 1번과 2번이라면, 1번 컵이 있던 위치에 2번 컵을 이동시키고, 동시에 2번 컵이 있던 위치에 1번 컵을 이동시켜야 한다. 이때 공은 움직이지 않기 때문에, 공의 위치는 맨 처음 1번 컵이 있던 위치와 같다. 세준이는 컵의 위치를 총 M번 바꿀 것이며, 컵의 위치를 바꾼 방법이 입력으로 주어진다. 위치를 M번 바꾼 이후에 공이 들어있는 컵의 번호를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 컵의 위치를 바꾼 횟수 ..

[파이썬/python] 백준 9625번 BABBA

문제 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했다. 한 번 더 누르니 BA로 바뀌고, 그 다음에는 BAB, 그리고 BABBA로 바뀌었다. 상근이는 화면의 모든 B는 BA로 바뀌고, A는 B로 바뀐다는 사실을 알게되었다. 버튼을 K번 눌렀을 때, 화면에 A와 B의 개수는 몇 개가 될까? 입력 첫째 줄에 K (1 ≤ K ≤ 45)가 주어진다. ex) 1 4 10 출력 첫째 줄에 A의 개수와 B의 개수를 공백으로 구분해 출력한다. ex) 0 1 2 3 34 55 코드 import sys n=int(sys.stdin.readline()) num=[0]*(n+1) n..