반응형

구현 42

백준 BAEKJOON 32216번 찬물 샤워 [PYTHON/파이썬]

백준 BAEKJOON 32216번 찬물 샤워 [PYTHON/파이썬] (BRONZE Ⅲ)https://www.acmicpc.net/problem/32216       문제를 쉽게 풀기 위해 온도 변화 d 리스트 앞에 0을 추가했다.그리고 샤워기 온도가 담길 리스트 T_lst를 만들어줬다.그리고 샤워기 온도 변화에 관련된 조건들을 문제와 같게 세팅해 주어서T_lst를 완성시킨 뒤에 for문을 돌려 도훈이의 불쾌함 지수를 출력해 줬다.        n, k, T = map(int, input().split())d = [0] + list(map(int, input().split()))T_lst = [T] + [0] * nfor i in range(n): if T_lst[i] > k: # 물이 너무 뜨거울..

백준 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 함수를 통해서값을 수정한 뒤에 울타리 공사의 비용을 개별로 출..

백준 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 -=..

백준 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)

백준 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)

백준 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..

백준 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

백준 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..

백준 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])

백준 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..

반응형