목록2019/10 (11)
Jeongchul Kim
백준 삼성 코딩 기출 문제 - 스타트와 링크 python 출처 : BAEKJOON ONLINE JUDGE스타트와 링크 (https://www.acmicpc.net/problem/14889) 문제 설명축구를 하기 위해 짝수인 N명이 모여 N/2명으로 팀을 구성하려고 합니다. 이 문제는 2개의 팀(스타트, 링크팀)의 능력치 차이의 최소값을 출력하는 문제입니다. 능력치를 계산하는 방법은 팀원들끼리 주어진 배열에서 row 인덱스인 i와 column 인덱스의 j를 서로 맞바꿔 값을 더합니다. 문제 풀이재귀 함수로 구현합니다[1] 입력을 받습니다.n = int(input()) team = [list(map(int, input().split())) for _ in range(n)] [2] 스타트 팀과 링크팀을 구분하..
백준 삼성 코딩 기출 문제 - 연산자 끼워넣기 python 출처 : BAEKJOON ONLINE JUDGE연산자 끼워넣기 (https://www.acmicpc.net/problem/14888) 문제 설명N개의 수로 이루어진 수열에서 각 수마다 N-1개의 연산자가 주어집니다. 각 연산자는 사칙연산으로 덧셈(+), 뺄셈(-), 곱셈(x), 나눗셈(%)가 주어집니다. 수의 순서를 바꾸지 않으면서 각 연산을 적용해보고, 식의 결과의 최대값과 최소값을 구하는 문제입니다. 문제 풀이재귀 함수를 이용해 구현하면 문제 풀이는 쉽습니다. [1] 입력을 받습니다.덧셈, 뺄셈, 곱셈, 나눗셈 순서로 operation에 저장합니다.n = int(input()) number = list(map(int, input().split..
백준 삼성 코딩 기출 문제 - 로봇청소기 python 출처 : BAEKJOON ONLINE JUDGE로봇청소기 (https://www.acmicpc.net/problem/14503) 문제 설명NxM의 크기의 맵에서 로봇 청소기가 청소를 진행합니다. 주어진 위치에서 청소를 진행하고, 현재 방향을 기준으로 왼쪽 방향으로 회전하면서 탐색을 진행합니다. 빈 칸(0)이면 전진하고 청소(2)합니다. 왼쪽 방향에 청소할 공간이 없으면 회전합니다. 네 방향 모두 청소(2)가 되었거나 벽(1)이라면, 방향을 유지한 채 한 칸 후진합니다. 만약 후진도 할 수 없는 경우라면 작동을 멈춥니다. 문제 풀이[1] 입력을 받습니다.n, m = map(int, input().split()) x, y, d = map(int, inpu..
백준 삼성 코딩 기출 문제 - 연구소 python 출처 : BAEKJOON ONLINE JUDGE연구소 (https://www.acmicpc.net/problem/14502) 문제 설명연구소 NxM 크기에 빈 칸(0), 벽(1) 그리고 바이러스(2)가 있습니다. 바이러스는 상하좌우로 인접한 빈 칸으로 퍼져나갑니다. 새로 세울 수 있는 벽은 3개로 고정됩니다. 무조건 3개를 세워야합니다. 벽을 3개 세운 뒤에 바이러스가 퍼질 수 없는 곳이 안전 영역입니다. 안전 영역 크기(칸의 개수)의 최대값을 구하는 것이 문제입니다. 문제 풀이이 문제는 DFS로 접근합니다. DFS(Depth First Search) 알고리즘은 stack(LIFO)과 재귀 함수를 사용해 구현해야 합니다. [1] 입력을 받습니다.n, m ..
백준 삼성 코딩 기출 문제 - 퇴사 python 출처 : BAEKJOON ONLINE JUDGE퇴사 (https://www.acmicpc.net/problem/14501) 문제 설명퇴사를 진행행하려 하는는데 N+1일 째 되는날 퇴사를 하기 위해서 N일 동안 많은 상담을 하려고 합니다.상담을 완료하는데 걸리는 시간 T와 상담을 했을 때 받을 수 있는 금액 P를 보고, 퇴사 전까지 최대 수익을 구하는 문제입니다. 문제 풀이각 팀의 회의 시작 시간과 회의 시간이 정해진 타임 테이블에서 최대한 많은 회의를 잡으려고 하는 dynamic programming과 비슷합니다. dynamic programming으로 풀면 쉽습니다. [1] 입력을 받습니다. 입력받은 n으로 t와 p라는 배열을 선언하고 들어오는 입력에 배..
백준 삼성 코딩 기출 문제 - 테트로미노 python 출처 : BAEKJOON ONLINE JUDGE2048 (Easy) (https://www.acmicpc.net/problem/14500) 문제 설명문제는 흔히 우리가 알고 있는 테트리스의 모양을 이용해서 주어진 맵 NxM에 어느 위치에 있던 테트로미노 하나를 놓게 됩니다. 그러면 테트로미노 안에 놓여 있는 칸에 수들의 합을 최대로 구하는 프로그램을 구하는 것입니다.figure reference(https://www.acmicpc.net/problem/14500) 첫 번째 케이스를 예로 들면 다음과 같이 합의 최대값 19를 뽑을 수 있습니다. 모든 경우의 계산을 진행해야 합니다. 회전과 대칭에 따라 테트리스의 모양은 19개 입니다. 문제 풀이[1] 입..
백준 삼성 코딩 기출 문제 - 주사위 굴리기 python 출처 : BAEKJOON ONLINE JUDGE주사위 굴리기 (https://www.acmicpc.net/problem/14499) 문제 설명지도의 크기 NXM에서 오른쪽은 동쪽, 위쪽은 북쪽입니다. 주사위가 하나 주어지는데 모든 면에는 0이 적혀져 있습니다. 주사위가 놓여진 좌표가 (x, y)가 있습니다. 지도의 각 칸에는 정수가 쓰여져 있고, 주사위를 굴리면 돌아가는데 이동한 칸 수에 0이면 주사위 바닥면에 쓰여 있는 수가 복사됩니다. 0이 아닌 경우에는 칸에 쓰여 있는 수가 바닥면으로 복사되고, 칸에 쓰여 있는 수는 0으로 교체가 됩니다. 명령이 주어지는대 동쪽은 1, 서쪽은 2, 북쪽은 3, 남쪽은 4로 주어집니다. 복잡하게 생각하면 끝없이..
백준 삼성 코딩 기출 문제 - 시험 감독 python 출처 : BAEKJOON ONLINE JUDGE시험 감독(https://www.acmicpc.net/problem/13458) 문제 설명N개의 시험장이 있고, i번 시험장에 있는 응시자의 수의 A_i명이 있습니다. 총 감독관이 감시할 수 있는 응시자의 수 B명, 부감독관은 C명입니다. 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러명 있어도 됩니다. 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성합니다. 문제 풀이[1] 우선 입력값을 받아 들입니다. N = int(input()) # 시험장 개수 applicant = list(map(int, input().split())) # 시험장에 응시자의 수(리스트) B, C = map(int,..