본문 바로가기

반응형

전체 글

(253)
[python/파이썬] 백준 1669 멍멍이 쓰다듬기 [문제 출처] https://www.acmicpc.net/problem/1669 1669번: 멍멍이 쓰다듬기 동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 그러다 오늘도 어김없이 그의 영원한 라이벌 멍멍이를 만나게 되었다. 원숭이는 멍멍이를 쓰다듬고 싶었다. 하지만 원숭이는 멍 www.acmicpc.net [문제 풀이] import sys a, b = map(int, sys.stdin.readline().split()) if a == b: print(0) else: n = int((b - a) ** 0.5) if n ** 2 == b - a: print(2 * n - 1) else: z = (b - a) - n ** 2 if z
[python/파이썬] 백준 2168 타일 위의 대각선 [문제 출처] https://www.acmicpc.net/problem/2168 2168번: 타일 위의 대각선 첫째 줄에 가로의 길이 xcm와 세로의 길이 ycm가 주어진다. x와 y는 1,000,000,000 이하의 자연수이다. x와 y사이에는 빈칸이 하나 이상 있다. www.acmicpc.net [문제 풀이] x, y = map(int, input().split(' ')) def gcd(a, b): if b > a: a, b = b, a while True: if b == 0: break a, b = b, a % b return a print(x + y - gcd(x, y))
[python/파이썬] 백준 13699 점화식 [문제 출처] https://www.acmicpc.net/problem/13699 13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n www.acmicpc.net [문제 풀이] import sys input = sys.stdin.readline n = int(input()) t = [0 for _ in range(n+1)] t[0] = 1 for i in range(1, n+1): for j in..
[python/파이썬] 백준 2670 연속부분최대곱 [문제 출처] https://www.acmicpc.net/problem/2670 2670번: 연속부분최대곱 첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다. 실수는 소수점 첫째자리까지 주어지며, 0.0보다 크거나 www.acmicpc.net [문제 풀이] dp라는 이름의 리스트에 i-1번째와 i번째의 곱과 i번째 수 중에 더 큰 값을 저장한다. dp에 값을 다 채운 후에 가장 큰 값을 출력한다. * 문제에서 결과를 소수점 넷째 자리에서 반올림하여 셋째 자리까지 출력하라고 하였기에 처음에는 round(max(dp), 3)를 사용했는데 틀렸고 아래 코드의 출력으로 바꿨을 때 정답이 나왔다. import sys ..
[python/파이썬] 백준 15489 파스칼 삼각형 [문제 출처] https://www.acmicpc.net/problem/15489 15489번: 파스칼 삼각형 첫째 줄에 양의 정수 R, C, W가 공백을 한 칸씩 두고 차례로 주어진다. (단, 2 ≤ R+W ≤ 30, 2 ≤ C+W ≤ 30, 1 ≤ W ≤ 29, C ≤ R) www.acmicpc.net [문제 풀이] 일단 파스칼의 삼각형을 필요한 만큼 만들어놓고 그다음에 문제에서 주어진 값을 계산하는 방식으로 해결한다. 2차원 리스트을 이용 하여 파스칼의 삼각형을 만든다. r번째 줄에 있는 수를 꼭짓점으로 하고 한 변의 길이가 w인 삼각형이 나오려면 파스칼의 삼각형은 최소 r+w-1줄이 되어야 한다. 따라서 n = r+w-1로 두고 n*n 리스트를 선언하고 n번째 줄에 n개의 원소만 넣어준다. 각 줄..
[python/파이썬] 백준 14400 편의점 2 [문제 출처] https://www.acmicpc.net/problem/14400 14400번: 편의점 2 영선이는 이번에 편의점으로 창업을 하려고 계획 중이다. 이번 창업을 위해 많은 준비를 하고 있는데, 아직 편의점을 세울 위치를 결정을 하지 못했다. 영선이는 미리 시장조사를 하여, 주요 고 www.acmicpc.net [문제 풀이] 고객들의 좌표를 입력받고 x값을 기준으로 오름차순 혹은 내림차순으로 정렬하여 x좌표 중에 중간값을 찾고, y값을 기준으로 정렬하여 y좌표 중에 중간값을 찾아서 그 위치에 편의점을 세웠을 때 거리의 합이 최소가 된다. import sys input = sys.stdin.readline n = int(input()) customer = [] for _ in range(n):..
[python/파이썬] 백준 14247 나무 자르기 [문제 출처] https://www.acmicpc.net/problem/14247 14247번: 나무 자르기 영선이는 나무꾼으로 나무를 구하러 오전에 산에 오른다. 산에는 n개의 나무가 있는데, 영선이는 하루에 한 나무씩 n일 산에 오르며 나무를 잘라갈 것이다. 하지만 이 산은 영험한 기운이 있어 www.acmicpc.net [문제 풀이] 입력으로는 나무의 그루수이자 나무를 자르러 올라가는 날의 수인 n과 현재 나무들의 길이, 각 나무들이 하루에 자라는 양이 주어진다. 이 모든 입력을 고려하여 가장 많은 양의 나무를 얻는 것이 목적이다. 쉽게 생각하면 각 날에 가장 길이가 긴 나무를 자르면 된다고 생각하겠지만 이렇게 하면 많은 양의 나무를 자르지 못한다. 나무가 자라는 속도에 맞춰서 잘라줘야 한다. 문제..
[python/파이썬] 백준 1449 수리공 항승 [문제 출처] https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net [소스 코드] 물이 새는 곳의 위치를 리스트로 입력받고 오름차순으로 정렬한다. 가장 왼쪽에 있는 구멍부터 테이프를 붙히기 시작해서 for문으로 어는 구멍까지 막을 수 있는지 체크한다. 현재 새는 곳인 pipe[i]가 테이프가 시작되는 부분 pipe[now]로부터 l - 1 이내에 있다면 새로운 테이프를 뜯지 않아도 된다. 만일 이보다 멀리있을 경우 다른 테이프가 필요..

반응형