반응형

알고리즘 34

[백준 1700 파이썬] 멀티탭 스케줄링

백준 1700 멀티탭 스케줄링 https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 문제 - 준규는 자신의 생활 패턴을 분석하여, 자기가 사용하고 있는 전기용품의 사용순서를 알아내었고, 이를 기반으로 플러그를 빼는 횟수를 최소화하는 방법을 고안하여 보다 쾌적한 생활환경을 만들려고 한다. 예를 들어 3 구(구멍이 세 개 달린) 멀티탭을 쓸 때, 전기용품의 사용 순서가 아래와 같이 주어진다면, 키보드 헤어드라이기 핸드폰 충전기 디지털카메라 충전기 키보드..

[백준 1789 파이썬] 수들의 합

백준 1789 수들의 합 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 서로 다른 n개의 자연수의 합을 s라 할 때 자연수 n의 최댓값은 얼마인가 (n개의 자연수의 합이 s 이다) 입력 첫째줄에 자연수 s가 주어진다 출력 n의 최댓값을 출력한다 풀이 n의 개수를 최대로 하기 위해서는 1부터 n의 값을 +1 하여 s에 근접하게 만들면 된다고 생각하였다 그래서 반복문을 사용하여 1부터 s보다 작거나 같을 때까지 더하여 s보다 커지면 현재 더한 값에서 -1 한 값을 출력한다 코드 s=int(input()) sum=0 i=1 while sums: #더했을때 s보..

[백준 2512 파이썬] 예산 풀이

문제 -줄 수 있는 예산의 총액이 이 주어지고 그 총액이 넘지 않는 선에서 각 지방에 최대한으로 공급하고 한다. 입력 첫째줄에는 지방수 둘째 줄에서는 각 지방이 요청하는 예산 셋째 줄에는 총예산 출력 각 지방에 배정될 예산중 최대를 출력한다 풀이 가능한 예산값 v를 1부터 해서 증가해서 각 지방이 요청한 값보다 크면 그 지방이 요청한 값을 예산으로 정하고 작으면 v로 하여 총예산 보다 작은지 큰지 확인하면서 가능한 v의 최댓값을 구할 수 있다 다만 이렇게 하면 이 문제에서는 시간 초과로 나오기에 이분탐색 방법을 사용하여 좀 더 빠르게 구할 수 있다 이분탐색은 변수 s에 0을 변수 e에 지방이 요청하는 예산중 가장 큰 값으로 하여 (s+e)//2 중간값을 구하여 그 값을 기준으로 위의 과정을 돌려 총예산보..

백준 7562 나이트의 이동 파이썬 풀이

https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 나이트는 총 8방향으로 이동한다 현재위치가 (0,0) 일때 (1,2) (-1,2) (1,-2) (-1,-2) (2,1) (2,-1) (-2,1) (-2,-1) 그렇기에 bfs 알고리즘을 사용하여 현재 위치에 대해서 8방향의 이동을 모두 돌리고 이미 방문한 위치라면 이동하지 않게 만들었다 8방향으로 이동할때 주어진 체스판 넘어로 이동하지 못하도록 조건또한 추가해주어야한다. 알고리즘 1)체스판 범위 만큼..

반응형