본문 바로가기

Algorithm 💡/Implementation54

[소프티어 7374번] 진정한 효도 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysinput = sys.stdin.readline# 남우 부모님의 농사일을 도우려고 함# 남우에게 할당된 땅은 3x3 크기의 격자# 1  이번 문제는 3x3 크기의 격자에서 1x3 크기의 영역 안의 값들이 모두 같은 블럭을 1개 이상 만들기 위해 필요한 최소 비용을 구하는 문제이다. 비용을 구하기에 앞서서 격자 중에서 값이 모두 같은 1x3 크기의 블럭이 있는지 확인하기 위해 가로와 세로 기준으로 점검하는 함수(check_row / check_col)을 선언하였고, 모든 행과 열을 순회하면서 점검해본 결과 존재할 경우(available) 곧바로 0을 출력하도록 구현하였다. 만약에 값이 모두 같은 1x3 크기의 블럭이 없다.. 2024. 6. 19.
[프로그래머스] 안전지대 def solution(board): # 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류 # 지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재 answer = 0 def return_boom_set(x,y): temp_set = set() for i in range(x-1,x+2): for j in range(y-1,y+2): if 0  본 문제는 지뢰가 설치된 영역이 주어지고, 지뢰가 설치된 자리와 지뢰를 둘러싼 자리들이 위험지대라고 가정할 때 안.. 2024. 6. 9.
[백준 23289번] 온풍기 안녕! 23289번: 온풍기 안녕! 유난히 추운 날씨가 예상되는 이번 겨울을 대비하기 위해 구사과는 온풍기를 설치하려고 한다. 온풍기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기 www.acmicpc.net import sys from collections import deque input = sys.stdin.readline # 가장 처음에 모든 칸의 온도는 0 # 1. 집에 있는 모든 온풍기에서 바람이 한 번 나옴 # 2. 온도가 조절됨 # 3. 온도가 1 이상인 가장 바깥쪽 칸의 온도가 1씩 감소 # 4. 초콜릿을 하나 먹는다. # 5. 조사하는 모든 칸의 온도가 K 이상이 되었는지 검사. # 모든 칸의 온도가 K이상이면 테스트를 중단하고, 아니면 1부터 다시 .. 2024. 4. 13.
[백준 20058번] 마법사 상어와 파이어스톰 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net import copy from collections import deque n, q = map(int,input().split()) area = [list(map(int,input().split())) for _ in range(2**n)] visited = [[False]*len(area) for _ in range(len(area))] l_list = list(map(int,input().split())) dx = [0,0,-1,1] dy .. 2024. 4. 7.
[백준 1388번] 바닥 장식 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net n, m = map(int,input().split()) area = [list(input()) for _ in range(n)] # 바닥 visited = [[False]*m for _ in range(n)] # 방문(카운팅)여부 answer = 0 for i in range(n): for j in range(m): # 모든 나무의 영역을 방문 if visited[i][j]: # 이미 방문(카운팅)한 나무라면 Pass continue visited[i][j] = Tr.. 2024. 3. 4.
[백준 14719번] 빗물 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net from collections import deque h, w = map(int,input().split()) dx = [1,0,0] dy = [0,1,-1] area = [[0]*w for _ in range(h)] visited = [[False]*w for _ in range(h)] answer = 0 heights = list(map(int,input().split())) def check_available(x,y): # 빗물이 고일 수 .. 2024. 1. 15.