반응형

파이썬 문제풀이 31

[배준 파이썬]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배열을 내림차순으로..

[백준 파이썬] 14502번 연구

[백준 파이썬] 14502번 연구문제인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 연구소의 크기는 N x M인 직사각형으로 나타낼 수 있으면 1X1 정크기의 정사각형으로 나누어져 있다.연구소는 빈칸과 벽칸으로 이루어져 있다. 바이러스는 인접한 상화좌우로 퍼져나갈 수 있다.벽을 세워서 바이러스가 퍼지는걸 막아야 하는데 세울 수 있는 벽의 개수는 3개이면 꼭 3개만 세워야 한다.이때 바이러스가 퍼지지 않은 빈칸의 개수가 최대가 되는 값을 구하여라. 입력첫줄에 연구소의 세로 N과 가로 M이 주어진다그다음줄부터 N줄에 지도의 모양이 주어진다. 0은 빈칸 1은 벽 2는 바이러가 있는 위치이다.출력첫째 줄에 얻을 수 있는 안전 영역의 최대 크기를 출력한다.풀이BFS와 백트래킹을 이용하여 문제..

[삼성 sw 파이썬] 1940. 가랏! RC카!

[삼성 sw 파이썬] 1940. 가랏! RC카!문제RC카의 이동거리를 계산하려고 한다.command가 0 이면 현재 속도 유지 , 1 이면 가속 , 2 이면 감속 해야 하면1,2, 인경우 가속도의 값이 추가로 주어진다. 만약 현재 속도보다 감속할 속도가 더 클 경우, 속도는 0 이 된다. 입력으로 n개의 command가 주어진다 각 command는 1초를 의미하면 총 n초 동안 이동한 거리를 계산하는 프로그램을 작성하면 된다. 입력첫째줄에 총 테스트 케이스의 개수 T, 다음 줄부터 각 테스트 케이스가 주어진다.테이스 케이스 첫 줄에는 command의 수 n이 주어지고 , 둘째 줄부터 , 매줄마다가 각각의 command 가 주어진다풀이현재속도 와 현재까지 이동한 거리를 저장할 변수를 선언한다.그 후 n초 ..

[삼성sw 파이썬] 1288 새로운 불면증 치료법

[삼성 sw 파이썬] 1288 새로운 불면증 치료법문제양을 1번부터 순서대로 세는 것이 재미없어 N의 배수 번호인 양을 세기로 하였다.즉 처번째에는 N번 양을 세고 두 번째는 2N... K번재에는 KN번 양을 센다.이전에 셌던 번호들의 각 자리수에서 0에서 9까지 모든 숫자를 보는 것은 최소 몇 번 양을 센 시점일까?5N번 양을 세면 0에서 9까지 모든 수를  보게 되므로 호석이는 양 세기를 멈춘다.입력첫줄은 테스트 케이스 T가 주어진다.각 테스트 케이스의 첫 번째 줄에서는 N이 주어진다.출력각 테스트 케이스마다 #테스트 케이스 번호를 출력하고 최소 몇 번 양을 세어야지 0부터 9까지 모든 숫자를 보게 되는지 출력한다.풀이나는 array라는 리스트를 만들어서 각 자릿수를 집어넣고 ans에 0부터 9까지 ..

[삼성 sw 파이썬] 1204 최빈수 구하기

문제1000명의 수학 성정을 토대로 통계 자료를 만들려고 한다.이때 이 학교에서는 최빈수를 이용하여 학생들의 평균 수준을 짐작한다.10,8,7,2,2,4,8,8,8,9,5,5,3이라는 학생들이 성적이 주어질 때 이때 최빈수는 8 이 된다.최빈수를 출력하는 프로그램을 작성하시오.입력첫번째 줄에는 테스트 케이스 T가 주어진다.각 테이스 케이의 첫 줄에는 테스트 케이스 번호가 주어지고 그다음 줄부터 점수가 주어진다.출력#부호와 함께 테스트 게이스의 번호를 출력하고 공백 문자후 테스트 케이스에 대한 답을 출력한다.풀이 count()를 사용하여 현재 수가 주어진 데이터에서 몇번이나 나타나는지 확인하였다.for문을 돌면서 count값과 현재수를 확인하여 현재까지 기록된 count 값보다 크다면 현재수를 저장하고 c..

[백준 파이썬] 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..

[프로그래머스 파이썬] 괄호 변환

문제 (,)으로만 이루어진 문자열이 있다 ( 와 ) 의 개수가 같다면 이를 균형잡힌 괄호 문자열이라고 한다. (,) 괄호 짝이 모두 맞을 경우에는 올바른 괄호 문자열이라고 부른다. (()))( 균현잡힌 괄호 문자열 이지만 올바른 괄호 문자열은 아니다. 아래의 규칙을 이용하여 주어진 괄호 문자열을 올바른 괄호 문자열로 바꾸어 결과값을 return 하여라. 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열 v에 대해 1단계부터 다시 수행합니다. 3-1. 수행한 결과 문자열..

반응형