본문 바로가기
반응형

알고리즘36

[알고리즘/백준] 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.
[알고리즘/백준] 1485번 정사각형 Python 파이썬 이번 문제는 고민이 필요했던 문제이다. 4개의 점이 들어왔을 때, 사각형인지 아닌지 구하는 문제로 사각형의 조건에 대해 잘 생각해봐야했다. 이 점들이 순서대로 들어오는 것도 아니니 어떻게 할까 고민했는데 본인이 사각형의 조건을 "점과 점 사이 거리가 대각선 거리, 변의 거리 2가지 값 밖에 없음" 으로 정의했다. 만약에 이 두가지 값 외 제 3자 다른 거리 값이 나온다면 즉 사각형 아님으로 판별하는 것이다. 다음과 같은 코드를 통해 통과하였다. import sys input = sys.stdin.readline T = int(input()) check_point = [ [-1]*2 for _ in range(4) ] for i in range(T): for k in range(4): check_point.. 2023. 3. 10.
반응형