반응형

전체 글 312

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

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

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

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

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

백준 BAEKJOON 31844번 창고지기 [PYTHON/파이썬]

백준 BAEKJOON 31844번 창고지기 [PYTHON/파이썬] (BRONZE Ⅱ)https://www.acmicpc.net/problem/31844       박스를 원하는 칸으로 이동시키기 위해서는로봇의 위치 혹은 깃발의 위치 가 성립해야 한다.성립하지 않으면 박스를 원하는 칸으로 옮길 수 없기 때문에 -1을 출력한다. 로봇의 첫 번째 명령은 박스의 위치 한 칸 전까지 이동해야 하니박스의 위치에서 로봇의 위치를 뺀 뒤 또 1을 빼줘야 한다. 로봇의 두 번째 명령은 박스를 미는 행위이기 때문에깃발의 위치에서 박스의 위치를 빼주면 된다. 이 두 가지 명령의 횟수를 더해주면 결과를 출력할 수 있다.       storage = list(input())robot = storage.index("@") # ..

백준 BAEKJOON 31881번 K512에 바이러스 퍼뜨리기 [PYTHON/파이썬]

백준 BAEKJOON 31881번 K512에 바이러스 퍼뜨리기 [PYTHON/파이썬] (BRONZE Ⅱ)https://www.acmicpc.net/problem/31881       input 대신 sys.stdin.readline.rstrip()을 사용해야 시간 초과가 나지 않는다.바이러스 감염 여부를 체크하는 리스트를 만든 후결과값을 N과 같게 설정했다. query의 길이가 1보다 크면case와 x에 0번째 인덱스, 1번째 인덱스를 나눠 저장하였고그렇지 않다면 case 값만 저장했다. case가 1일 경우 승형이가 감염 시키는 행위이니바이러스 감염 여부를 체크한 뒤 결과값에 -1을 해주고 case가 2일 경우 근수가 치료하니바이러스 감염 여부를 체크한 뒤 결과값에 +1을 해주었다. case가 3일 경..

반응형