본문 바로가기
반응형

알고리즘37

[알고리즘/백준] 1992번 쿼드 트리 Python 파이썬 이번 문제는 여러모로 아쉬운 문제였습니다. 이미지의 압축 표현을 구하는 문제로 풀면서 여러가지 고려할 점이 있는 문제인데 저 같은 경우 처음에 사진이 안 뜨는 바람에 검색하다가 다른 분들의 코드를 봐버려서 쉽게 풀어버린 듯합니다. 실제로는 어떻게 사분할할지 표시 경우 어떻게 해줄지 생각하고 고민할 부분이 많았다고 생각합니다. 다음과 같은 코드로 통과하였습니다. import sys input = sys.stdin.readline n = int(input()) img_list = [list(map(int, input().strip())) for _ in range(n)] def check_img(x, y, n): num = img_list[x][y] for i in range(x, x+n): for j in.. 2023. 3. 17.
[알고리즘/백준] 1344번 축구 Python 파이썬 이번 문제는 과거의 수학 공식을 더듬어 보는 문제였습니다. 축구 게임으로 축구 게임 시간은 총 90분이고 5분 간격으로 총 18번의 득점 기회가 주어졌을 때 한 팀이 소수 점수를 득점할 확률을 구하는 문제입니다. 이때 a, b 팀의 확률 퍼센트가 주어집니다. 해당 문제를 풀기 위해서는 확률을 구하는 공식을 알아야하는데 다음과 같습니다. 위 공식을 이해하기 위해서는 기본적으로 순열에 대해서도 알아야합니다. 순열이란? 서로 다른 n개의 값에서 r개를 뽑아 나열할 때 순서를 고려하지 않고, 중복없이 수를 의미합니다. 저 같은 경우 직접 계산하기보다는 파이썬에서 제공되는 라이브러리를 사용해주었습니다. 다음과 같은 코드를 통해 통과하였습니다. import sys input = sys.stdin.readline f.. 2023. 3. 16.
[알고리즘/백준] 1103번 게임 Python 파이썬 이번 문제는 어려웠고 사실상 거의 다른 분의 코드를 참고하면서 풀어서 원래 기록하지 않을려고 했지만, 후에 제가 까먹어도 보고 이해할 수 있게 제가 이해한 것을 풀어서 설명하기 위해 적게 되었습니다. 먼저 해당 문제를 더 잘 이해할려면 기본적으로 DFS와 DP에 대해 개념을 알고 있어야합니다. 각 보드판에 적힌 숫자만큼 위아래좌우로 이동할 수 있고 이렇게 움직였을 때 최대한 많이 움직일 수 있는 숫자를 구하는 것이 관건인 문제입니다. 여기서 예외가 있다면 H 라는 구멍이 존재한다는 것과 갔던 곳을 또 갈 수 있기 때문에 무제한 동전이 움직일 수 있다는 점입니다. 처음에 이 문제를 보고 DFS, BFS 가 생각났고 이중에서 사방면을 검사하는데 많이 쓰이는 DFS 를 써야겠다고 생각했습니다. 다만 문제를 봤.. 2023. 3. 13.
[알고리즘/백준] 2615번 오목 Python 파이썬 이번 문제는 어려운듯 안 어려운듯 했는 문제였다. 바둑판이 주어졌을 때 흑돌이 이겼는지 백돌이 이겼는지 아직 결판이 안 났는지를 출력하고 이긴 자가 있다면 제일 왼쪽 상단 돌의 위치를 출력하는 문제이다. 푸는 데 고려한 점은 어떻게 검사해줄까 였고 주의할 점은 딱 5개만 이기고 5개 미만이거나 6개 이상 이어질 경우 이겼다고 판단하지 않는다는 점이다. 다음과 같은 코드를 통해 통과하였다. from collections import deque import sys input = sys.stdin.readline map_pos = [list(map(int,input().split())) for _ in range(19)] dx = [1,0, 1, -1] dy = [0,1, 1, 1] for i in range.. 2023. 3. 12.
반응형