반응형

백준 20

[배준 파이썬]2564 경비원

문제동근이는 무인 경비 회사 경비원으로 항상 대기하고 있다가 호출이 들어오면 그곳으로 가야 한다 이때 블록을 가로질러갈 수 없다 그렇기에 1번 에서 호출이 들어올 경우 x에서 출발하여 1번까가는 거리는 시계방향으로 갈경우 12, 반시계 방향으로 갈 경우 18이 된다.2번에서 호출이 들어올 경우 최단거리는 6이고 3번은 5가 된다 이때 각 상점  사이의 최단 거리의 합을 구하는 프로그램을 작성하시오.입력첫 번째 줄에의 블록의 가로 길이와 세로 길이가 주어진다.둘째 줄에는 상점의 개수가 주어진다.그다음 줄부터는 상점의 위치가 주어지는데  첫번째 수는 1은 북, 2는 남, 3은 서 , 4,는 동쪽을 의미하며 두 번째는 상점의 위치를 의미한다.그리고 마지막 둘은 동근의 위치를 상점 위치과 같이 나타낸다. 출력첫..

[백준 파이썬] 보물 1026

[백준 파이썬] 보물 1026 문제길이가 N인 정수 배열 A와 B가 있다 다음과 같이 함수 S를 정의하자. S의 값을 가장 작게 만들기 위해 A의 수를 재배열 하자 단, B에 있는 수는 재배열하면 안 된다.S의 값이 최소가 되는 프로그램을 작성하라.입력첫째줄에 N이 주어진다.둘째 줄에는 A의 배열이 주어진다.셋째 줄에는 B의 배열의 주어진다. 출력첫째줄에 S의 최솟값을 출력한다.풀이A배열만 움직여 B배열과 곱셈을 하여 모든 값을 다 더한 값을 S이다. 이때 A배열의 인덱스만 움직여야 한다고 한다. B배열의 값들의 위치는 정해져 있고 최솟값이 되기 위해서는 B배열의 높은 값을 A배열의 가장 낮은 값을 곱셈하도록 만들어주면 가장 낮은 S값이 된다. 결론은 A 배열을 오름차순으로 정렬한고 B배열을 내림차순으로..

[백준 파이썬] 15654 N과 M(5)

[백준 파이썬] 15654N과 M(5) 문제 N개의 자연수와 자연수 M이 주어졌을대 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. -N개의 자연수 중에서 M개를 고른 수열 입력 첫째 줄에 N과 M이주언지다 둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10000보다 작거나 같은 자연수이다. 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안 되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 풀이 이 문제는 백트래킹을 이용한 문제로 백트래킹 알고리즘은 모든 경우의 수를 탐색하면서 현재 주어진 조건과 맞는 것을 선택하고 아닐 경우 ..

[백준 파이썬] 15686 치킨 배달

[백준 파이썬] 15686 치킨 배달 문제유형 브루트포스 알고리즘 백트래킹 구현 문제 크기가 N x N인 도시가 있다. 도시는 1x1 크기의 칸으로 나누어져 있다 0 2 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 2 위와 같이 입력이 주어지는데 이때 r행 c열에 위치한 지점을 (r,c)와 같은 형태로 나타낸다. r, c는 1부터 시작한다. 이때 0은 비칸, 1은 집 , 2는 치킨집이다. 자신의 집에서 가장 가까운 치킨집 과의 거리를 치킨 거리라 한다. 각각의 집은 치킨 거리를 가지고 있으며 도시의 치킨 거리는 모든 집의 치킨 거리의 합이다. 치킨 거리를 구하는 방법은 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2|로 구한다. 치킨집 중 ..

[백준 파이썬 소로소 집합]1043 거짓말

[백준 파이썬 소로소 집합]1043 거짓말 문제 주인공은 파티 가서 이야기하는 것을 좋아한다. 파티에 갈 때마다 자신의 이야기를 과장해서 말한다. 하지만 거짓말쟁이로 알려지기 싫어한다. 문제는 몇몇 사람들이 이야기의 진실을 알고 있다 그렇기에 진실을 알고 있는 사람들이 있을 때에는 진실을 이야기할 수밖에 없다. 당연히 어떤 사람이 어떤 파이테서는 진실을 듣고 또 다른 파티에서는 과장된 이야기들을 들었을 때도 주인공은 거짓말쟁이로 알려지게 된다. 주인공은 이런 일을 모두 피해야 한다. 사람수 n이 주어지고 진실을 아는 사람과 각 파티에 오는 사람들의 번호가 주어진다. 주인공은 모든 파티에 참가해야 한다. 과장된 이야기를 할 수 있는 파티 개수의 최댓값을 구하여라. 입력, 출력 풀이 나는 union find..

[백준 파이썬] 1644 소수의 연속합

[백준 파이썬] 1644 소수의 연속합 문제 하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 하지만 연속된 소수의 합으로 나타낼 수 없는 자연수들도 있는데,20이 그 예이다 7+13을 하면 20이 되기는 하지만 두수는 연속된 소수가 아니기에 적합한 표현이 아니다. 한 소수는 반드시 한번만 사용할수 있다. 입력 첫째 줄에 자연수 N이 주어진다 출력 주어진 N을 연속된 소수의 합으로 나타낼 수 있는 경우의 수를 출력한다. 풀이 소수를 찾기위해 난 에스토라체 라는 알고리즘을 사용하여 소수인 경우 1의 값을 넣어 소수인걸 나중에 확인할수 있도록 하였다. 시작위치를 start=1 부터 시작하게 하여 소수이면 sum에 더하게 하여 sum이 찾는값에 도달하면 경우의수 +1 ,start +1 을 하..

[백준 1806] 부분합

[백준 1806] 부분합 문제 10000 이하의 자연수로 이루어진 길이 n짜리 수열이 주어진다 이 수열에서 연속된 수들의 부분합 중에 그 합이 s 이상이 되는것 중 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오 입력 첫줄에 n과 s가 주어진다. 둘째 줄 에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분된다. 출력 첫 줄에 구하고자 하는 최소의 길이를 출력하며 만약 없으면 0을 출력한다. 풀이 투포인트를 이용하여 풀었다 합 s에 이상이 되는 부분합의 개수를 카운트할 변수로 now와 그 갯수를 넣을 리스트 ans를 만들었다 일단 기본적으로 투포인트와 같은 방식으로 진행한다 while문을 이용하여 현재까지 의 합이 도 달해 야합보다 작거나 end값이 n 보다 작을 때 sum+=data [end]하고..

[백준 파이썬]1106 호텔

[백준 파이썬]1106 호텔 https://www.acmicpc.net/problem/1106 1106번: 호텔 첫째 줄에 C와 형택이가 홍보할 수 있는 도시의 개수 N이 주어진다. C는 1,000보다 작거나 같은 자연수이고, N은 20보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 각 도시에서 홍보할 때 www.acmicpc.net 문제 형택 호텔의 사장인 김형택은 이번에 수입을 조금 늘리기 위해서 홍보를 하려고 한다. 형택이가 홍보를 할 수 있는 도시가 주어지고, 각 도시별로 홍보하는데 드는 비용과, 그 때 몇 명의 호텔 고객이 늘어나는지에 대한 정보가 있다. 예를 들어, “어떤 도시에서 9원을 들여서 홍보하면 3명의 고객이 늘어난다.”와 같은 정보이다. 이때, 이러한 정보에 나타난 돈에 정..

[백준 파이썬] 2505번 두 번 뒤집기

[백준 파이썬] 2505번 두 번 뒤집기 https://www.acmicpc.net/problem/2505 2505번: 두 번 뒤집기 첫줄에는 숫자판의 크기를 나타내는 정수 N (5 ≤ N ≤ 10,000)이 주어진다. 그 다음 줄에는 두 개의 구간이 뒤집혀진 놀이판의 상태를 나타내는 숫자들이 하나의 공백을 두고 나타난다. www.acmicpc.net 문제 입력 -첫 줄에는 숫자판의 크기를 나타내는 정수 n이 주어진다 -두 번째에는 두 개의 구간이 뒤집힌 놀이판의 상태를 나타내는 숫자들이 하나의 공백을 두고 나타난다 출력 첫 두줄에는 뒤집어야 할 구간을 차례대로 출력해야 한다 각 줄에는 구간[i, j]을 나타내면 이는 i와 j를 빈칸 사이에 두고 출력해야 하면 답은 항상 존재한다 풀이 -뒤집는 구간을 선..

[백준 파이썬] 19598 최소 회의실 개수

[백준 파이썬] 19598 최소 회의실 개수 문제 n개의 회의를 모두 진행할 수 있는 최소 회의실 개수를 구하라는 미션을 받았다. 각회의는 시작과 끝 나는 시간이 주어진다. 한 회의실에서 동시에 2개의 회의 진행은 불가능하다. 회는 중간에 중단될수 없으며 끝나야지 다음 회의를 진행할 수 있다. 회의 시작 시간은 끝나는 시간보다 항상 작다 입력 첫줄은 배열의 크기 n 둘째 줄부터 공백사이를 두고 회의 시작 시간과 끝나는 시간이 주어진다. 출력 최소 회의실 개수를 출력한다. 풀이 정답을 넣을 리스트를 만들고 처음 시작할 때 아무런 조건 없이 회의실을 배정받을 수 있다 그 후부터는 배정받은 회의의 끝나는 시간을 다른 회의들의 시작시간하고 비교하여 그 자리를 대체하거나 새로운 회의실을 배정받는 식으로 문제를 풀..

반응형