반응형

구현 62

백준 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 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 31866번 손가락 게임 [PYTHON/파이썬]

백준 BAEKJOON 31866번 손가락 게임 [PYTHON/파이썬] (BRONZE Ⅱ)https://www.acmicpc.net/problem/31866      if문과 튜플을 활용하여 문제를 풀었다.'무효'를 낸 플레이어는 무조건 지는 것만 신경써주면 된다.(둘 다 '무효'를 낸다면 승패를 가릴 수 없다.)      A, B = input().split()if A in ("0", "2", "5") and B not in ("0", "2", "5"): print(">")elif A not in ("0", "2", "5") and B in ("0", "2", "5"): print("")elif (A, B) in (("2", "0"), ("5", "2"), ("0", "5")): prin..

ALGORITHM/PYTHON 2024.07.23

백준 BAEKJOON 31994번 강당 대관 [PYTHON/파이썬]

백준 BAEKJOON 31994번 강당 대관 [PYTHON/파이썬] (BRONZE Ⅳ)https://www.acmicpc.net/problem/31994       세미나의 이름과 신청자 수를 2차원 배열로 만든 뒤신청자 수를 기준으로 내림차순 정렬해주었다.그리고 0번째 인덱스의 세미나의 이름을 출력했다.      result = []for _ in range(7): seminar, num = input().split() result.append([seminar, int(num)])result.sort(key=lambda x: -x[1])print(result[0][0])

ALGORITHM/PYTHON 2024.07.19

백준 BAEKJOON 31962번 등교 [PYTHON/파이썬]

백준 BAEKJOON 31962번 등교 [PYTHON/파이썬] (BRONZE Ⅳ)https://www.acmicpc.net/problem/31962       출발할 때 걸리는 시간 S와 학교까지 가는 데 걸리는 시간 T를이차원 배열로 만들어준 뒤 S를 기준으로 내림차순 정렬해주었다. 다시 이차원 배열을 순회하면서X분 이내로 버스가 갈 수 있는지 확인해야한다.(나는 bool형 변수 arriveCheck를 사용하여 체크했다.) arriveCheck 변수를 통해 X분 이내로 갈 수 있다면True로 바꿔주고 시간 S를 저장 후 출력했다.가지 못한다면 -1를 출력했다.       N, X = map(int, input().split())busInfo = []for _ in range(N): S, T = m..

ALGORITHM/PYTHON 2024.07.16

백준 BAEKJOON 31859번 SMUPC NAME [PYTHON/파이썬]

백준 BAEKJOON 31859번 SMUPC NAME [PYTHON/파이썬] (BRONZE Ⅰ)https://www.acmicpc.net/problem/31859        # 1for 문과 if 문을 활용하여 출전자의 영어 이름에서 알파벳이 중복되지 않도록 추출했다.그 동시에 버려진 문자를 세어줬다. # 2, 3버려진 문자의 개수에 4를 더한 값을 문자열 맨 뒤에 붙였다.그리고 출전 번호에 1906을 더한 값을 맨 앞에 붙였다. # 4[::-1]를 사용하여 문자열을 뒤집은 뒤문자열 맨 앞에 "smupc_"를 붙여줬다.     N, Name = input().split()result = ""# 1abandonedText = 0 # 버려진 문자for i in Name: if i not in res..

ALGORITHM/PYTHON 2024.07.03
반응형