반응형

python 354

백준 BAEKJOON 32171번 울타리 공사 [PYTHON/파이썬]

백준 BAEKJOON 32171번 울타리 공사 [PYTHON/파이썬] (BRONZE Ⅱ)https://www.acmicpc.net/problem/32171        N개의 건물을 짓지만 첫 건물이 좌표의 기준이 되어야하기 때문에 따로 입력을 받아주었다.좌표 (a, b)와 (c, d)로 이루어진 사각형의 둘레가 문제에서 얘기하는 울타리 공사의 비용이다.둘레를 구하는 공식은 ((c - a) + (d - b)) * 2 이다. 그렇기 때문에 따로 함수로 만들어 사용했다.새로운 건물을 지으면서 주어지는 좌표 (a, b)와 기존 좌표 (a, b)는 min 함수를 통해서새로운 건물을 지으면서 주어지는 좌표 (c, d)와 기존 좌표 (c, d)는 max 함수를 통해서값을 수정한 뒤에 울타리 공사의 비용을 개별로 출..

ALGORITHM/PYTHON 2024.09.11

백준 BAEKJOON 32209번 다음 달에 봐요 [PYTHON/파이썬]

백준 BAEKJOON 32209번 다음 달에 봐요 [PYTHON/파이썬] (BRONZE Ⅲ)https://www.acmicpc.net/problem/32209       주어진 이벤트 Q의 순서대로 1번 이벤트로는 문제 포럼에 더하고, 2번 이벤트로는 문제 포럼에 빼주면 된다.문제 포럼에 사용되지 않은 문제가 y개 미만이라면 월간 향휴회는 즉시 해산이기에문제 포럼의 문제의 개수가 0 미만이 되는 순간 해산이 된다는 것을 알 수 있다.      Q = int(input())result = 0check = Truewhile Q: a, b = map(int, input().split()) if a == 1: result += b elif a == 2: result -=..

ALGORITHM/PYTHON 2024.09.06

백준 BAEKJOON 32184번 디미고에 가고 싶어! [PYTHON/파이썬]

백준 BAEKJOON 32184번 디미고에 가고 싶어! [PYTHON/파이썬] (BRONZE Ⅲ)https://www.acmicpc.net/problem/32184        B에서 A를 뺀 값을 2로 나눈 몫에서 1을 더해주면 결과를 도출할 수 있다.하지만 A가 짝수, B가 홀수인 경우에만 2를 더해줘야한다.왜냐하면 A가 짝수일 때 세로로 한 장, B가 홀수인 경우 세로로 한 장이 추가되기 때문이다.      A, B = map(int, input().split())if A % 2 == 0 and B % 2 != 0: print((B - A) // 2 + 2)else: print((B - A) // 2 + 1)

ALGORITHM/PYTHON 2024.09.05

백준 BAEKJOON 32141번 카드 게임 (Easy) [PYTHON/파이썬]

백준 BAEKJOON 32141번 카드 게임 (Easy) [PYTHON/파이썬] (BRONZE Ⅱ)https://www.acmicpc.net/problem/32141       오름차순으로 정렬된 카드의 공격력을 누적합 리스트 S로 만들었다.즉, 누적합의 마지막 인덱스의 요소가 모든 카드의 공격력의 합과 같다.그러니 먼저 모든 카드를 사용하여 상대를 죽일 수 없으면 -1을 출력하고그렇지 않다면 for문으로 순회하여 몇 개의 카드를 사용해야상대를 죽일 수 있는지 출력하면 된다.        N, H = map(int, input().split())d = [0] + list(map(int, input().split()))S = [0] * (N + 1) # 공격력 누적합 배열for k in range(1, ..

ALGORITHM/PYTHON 2024.09.03

백준 BAEKJOON 32132번 PlayStation이 아니에요 [PYTHON/파이썬]

백준 BAEKJOON 32132번 PlayStation이 아니에요 [PYTHON/파이썬] (BRONZE Ⅰ)https://www.acmicpc.net/problem/32132      단순하게 문자열을 바꾸면 된다고 생각해서 replace()를 사용하여 풀었다.문제를 푸는 과정에서 replace를 여러개 사용할 수 있다는 것도 알게 되었다.      N = int(input())word = input()while True: if "PS4" in word or "PS5" in word: word = word.replace("PS4", "PS").replace("PS5", "PS") else: breakprint(word)

ALGORITHM/PYTHON 2024.09.02

백준 BAEKJOON 32193번 승강장의 깊이 [PYTHON/파이썬]

백준 BAEKJOON 32193번 승강장의 깊이 [PYTHON/파이썬] (BRONZE Ⅲ)https://www.acmicpc.net/problem/32193         처음 풀었을 때는 시간 초과가 떠서 당황했다.단순하게 생각했던 게 잘못이었던 것 같았다.# 처음 풀이 (시간 초과)N = int(input())tmp = 0for _ in range(N): A, B = map(int, input().split()) result = A - B + tmp print(result) tmp = result   고민하던 찰나에 누적합을 적용하니 정답처리가 되어서 문제를 풀 수 있었다.누적합에 관한 내용은 아래의 글을 참고하면 좋다! 백준 BAEKJOON 11441번 합 구하기 [PYTHON..

ALGORITHM/PYTHON 2024.08.29

백준 BAEKJOON 32068번 보물 찾기 [PYTHON/파이썬]

백준 BAEKJOON 32068번 보물 찾기 [PYTHON/파이썬] (BRONZE Ⅲ)https://www.acmicpc.net/problem/32068       시작하는 위치 S에서 L과 R 중에 먼저 누가 도달하는지 원리만 알면 쉽다.먼저 L과 S, R과 S 사이의 거리를 구한 뒤에L과 S의 거리가 작다면 (거리 * 2 + 1),R과 S의 거리가 작다면 (거리 * 2)를 적용시키면 된다. (L-S, R-S 거리가 같아도 이 수식을 적용)      T = int(input())for _ in range(T): L, R, S = map(int, input().split()) L_Check, R_Check = S - L, R - S if L_Check

ALGORITHM/PYTHON 2024.08.22

백준 BAEKJOON 32025번 체육은 수학과목 입니다 [PYTHON/파이썬]

백준 BAEKJOON 32025번 체육은 수학과목 입니다 [PYTHON/파이썬] (BRONZE Ⅳ)https://www.acmicpc.net/problem/32025        직사각형의 가로, 세로 길이 중 작은 값의 반절이 원의 반지름 값과 같다.미터(m) 단위를 센티미터(cm) 단위로 표현하기 위해 100을 곱해주면 된다.       H = int(input())W = int(input())print(int(min(H, W) * 100 / 2))

ALGORITHM/PYTHON 2024.08.05

백준 BAEKJOON 31995번 게임말 올려놓기 [PYTHON/파이썬]

백준 BAEKJOON 31995번 게임말 올려놓기 [PYTHON/파이썬] (BRONZE Ⅱ)https://www.acmicpc.net/problem/31995        첫 번째 게임말을 두고 오른쪽 아래 대각선에 게임말을 두는 경우와오른쪽 위 대각선에 게임말을 두는 경우를 잘 생각하여규칙을 찾아낸다면 쉽게 풀 수 있다.결과적으로는 가로 길이와 세로 길이 중 하나라도 1이면 경우의 수가 0이고그렇지 않다면 (가로 길이 -1) * (세로 길이 -1) * 2가 정답이다.        N = int(input())M = int(input())if N == 1 or M == 1: print(0)else: print((N - 1) * (M - 1) * 2)

ALGORITHM/PYTHON 2024.08.01

백준 BAEKJOON 31246번 모바일 광고 입찰 [PYTHON/파이썬]

백준 BAEKJOON 31246번 모바일 광고 입찰 [PYTHON/파이썬] (SILVER Ⅴ)https://www.acmicpc.net/problem/31246       MOLOCO가 제시한 입찰 가격 A와 MOLOCO의 입찰가를 제외한 다른 모든 입찰가 중 최고 가격 B가 주어진다.목표 낙찰 지면 수가 최소 K개 이상이 되도록 하는 것이 문제의 핵심이다.즉, B에서 A를 뺀 값들을 리스트에 담은 뒤 오름차순으로 정렬하여K-1번 째 인덱스를 확인하면 된다. (0번째 인덱스부터 시작하니 -1)K-1번 째 인덱스의 값이 음수면 최소 K개의 지면을 낙찰 받았다는 것을 의미하여 0을 출력,양수면 그 값만큼 올려주면 조건을 성립하기 때문에 최소 정수 X라는 것을 의미한다.        import sysinpu..

ALGORITHM/PYTHON 2024.07.28
반응형