◼ PS Note/백준

    [백준] 1074번 : 미로 탐색 (🥈실버 1) (Python)

    문제 바로 가기 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2024-01-11 from collections import deque n, m = tuple(map(int, input().split())) grid = [ list(map(int, input())) for _ in range(n) ] dist_grid = [ [0] * m for _ in range(n) ] dist_grid[0][0] = 1 q = deque() drs = [0, 1..

    [백준] 1764번: 듣보잡 (🥈실버 4) (Python)

    문제 바로 가기 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2024-01-11 n, m = tuple(map(int, input().split())) not_heard = [ input() for _ in range(n) ] not_seen = [ input() for _ in range(m) ] not_heard = set(not_heard) not_seen = set(not_seen) answer = not_heard.intersection(not_s..

    [백준] 1541번 : 잃어버린 괄호 (🥈실버 2) (Python)

    문제 바로 가기 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2024-01-11 input_str = input() answer = 0 # 1st. 수식 문자열을 항으로 분류하여 리스트로 만듦 exp_lst = [] number = [i for i in range(10)] number_temp = [] for elem in input_str: if elem in str(number): number_temp.append(elem) else: exp_lst..

    [백준] 1074번 : Z (🥈실버 1) (Python)

    문제 바로 가기 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2024-01-11 import sys sys.setrecursionlimit(100000) n, r, c = tuple(map(int, input().split())) grid_n = 2 ** n high_bound = 0 low_bound = 0 def divide(grid_n, start_r, start_c, start_num): global high_bound, low_bound t..

    [백준] 1012번 : 유기농 배추 (🥈실버 2) (Python)

    문제 바로 가기 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2024-01-11 import sys sys.setrecursionlimit(100000) test_case_num = int(input()) drs = [0, 1, 0, -1] dcs = [1, 0, -1, 0] answer = 0 answers = [] def in_range(r, c): return r >= 0 and r = 0 and c < m def can_visit(r, c): ..

    [백준] 1107번 : 리모컨 (🥇골드 5) (Python)

    문제 바로 가기 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이 www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2024-01-10 target = int(input()) btn_errors = int(input()) if btn_errors: error_btn_lst = list(map(int, input().split())) else: error_btn_lst = [] target_lst = list(str(target)) min_cnt = abs(100 - target) def chec..

    [백준] 7576번 : 토마토 (🥇골드 5) (Python)

    문제 바로 가기 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2023-02-10 from collections import deque # 입력값 처리 및 필요 변수 선언 m, n = tuple(map(int, input().split())) box = [ list(map(int, input().split())) for _ in range(n) ] visited = [ [False] * m for _ in range(n) ] days = [ [..

    [백준] 15650번 : N과 M (2) (🥈실버 2) (Python)

    문제 바로 가기 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2022-02-10 n, m = tuple(map(int, input().split())) lst = [] def print_lst(): for elem in lst: print(elem, end=" ") print() def choose(curr_num): if curr_num == m + 1: print_lst() for i in range(1, n + 1): if len(lst) >= 1 an..

    [백준] 1929번 : 소수 구하기 (🥈실버 3) (Python)

    문제 바로 가기 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2022-03-11 m, n = tuple(map(int, input().split())) def isPrime(a): if a == 1 : return False i = 2 while i*i

    [백준] 1063번 : 킹 (🥈실버 4) (Python)

    문제 바로 가기 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 풀이 사용 언어 : Python 풀이한 날짜 : 2022-03-11 place = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] dxs = [0, 1, 1, 1, 0, -1, -1, -1] dys = [1, 1, 0, -1, -1, -1, 0, 1] king, stone, n = tuple(input().split()) n = int(n) king_x = place.index(king[0]) + 1 king_y = int(king..