반응형

Programming/[CodingTest] 7

백준 14501 퇴사 : 파이썬 코드

이 문제는 상담 일정에 대한 최적의 선택을 하여 최대 수익을 얻는 문제입니다. 상담 일정이 서로 겹치지 않도록 하면서 최대한 많은 수익을 얻는 방법을 찾아야 합니다. 이를 위해서는 동적 프로그래밍(Dynamic Programming) 또는 백트래킹(Backtracking)을 사용할 수 있습니다. 이 경우, 각 날짜에 대해 상담을 진행할지 말지를 결정하면서, 남은 날짜에 대해 최대 수익을 계산합니다. 문제 풀이 접근 각 날짜에 대해 상담을 진행하는 경우와 진행하지 않는 경우를 고려합니다. 상담을 진행할 때는 그 상담이 끝나는 날짜로 이동하고, 수익을 더합니다. 상담을 진행하지 않을 때는 다음 날로 이동합니다. 이러한 선택을 반복하며 최대 수익을 계산합니다. 코드 (Python 예시) N = int(inpu..

백준 14500 테트로미노 : 파이썬 코드

이 문제는 크기가 N×M인 종이 위에 테트로미노를 놓아 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 경우를 찾는 것입니다. 테트로미노는 정사각형 네 개를 변을 공유하며 이어 붙인 형태이며, 모든 가능한 회전과 대칭 상태를 고려해야 합니다. 문제 설명 N×M 크기의 종이가 주어지고, 각 칸에는 정수가 쓰여 있습니다. 테트로미노를 종이 위에 놓아서 테트로미노가 덮는 칸들의 수의 합을 최대로 만들어야 합니다. 테트로미노는 회전하거나 대칭시켜서 놓을 수 있습니다. 입출력 예시 예제 입력 1: 5×5 크기의 종이에 수가 적혀 있으며, 테트로미노를 놓아 최대 합을 구합니다. 예제 출력 1: 테트로미노를 최적의 위치에 놓았을 때의 칸에 쓰인 수들의 합의 최댓값입니다. 주의점 DFS 접근 방식에서 보라색..

백준 14499 주사위 굴리기: 파이썬 코드

이 문제는 주사위를 지도 상에서 이동시키면서 주사위의 윗면에 나타나는 값을 출력하는 것을 요구합니다. 주사위의 이동은 지정된 방향에 따라 다르며, 지도 상의 숫자와 주사위의 바닥면 숫자가 서로 영향을 주는 방식으로 작동합니다. 문제 설명 N×M 크기의 지도 위에 주사위가 놓여 있습니다. 주사위의 초기 상태와 지도에 쓰여 있는 숫자들이 주어집니다. 주사위를 특정 방향으로 이동시키는 명령이 주어지며, 이동할 때마다 주사위의 윗면 숫자를 출력해야 합니다. 주사위가 지도 바깥으로 이동할 경우, 그 명령은 무시됩니다. 입출력 예시 예제 입력 1: 주사위가 여러 방향으로 이동하며, 각 이동 후 윗면에 나타나는 숫자가 출력됩니다. 예제 출력 1: 각 이동 후 주사위 윗면의 숫자가 순서대로 출력됩니다. 코드 (Pyth..

백준 13458: 시험감독 파이썬 문제 풀이

이 문제는 시험장별로 필요한 감독관 수를 최소화하는 문제입니다. 각 시험장에는 응시자들이 있고, 총감독관은 각 시험장에 1명만 배치할 수 있으며, 나머지 응시자들을 감시하기 위해 부감독관을 배치해야 합니다. 이때 필요한 총 감독관과 부감독관의 최소 수를 계산하는 것이 목표입니다. 문제 해결 방법은 다음과 같습니다: 각 시험장마다 총감독관 1명을 배치합니다. 총감독관이 감시할 수 있는 응시자 수를 각 시험장의 응시자 수에서 빼고, 남은 응시자 수에 대해 부감독관을 배치합니다. 남은 응시자 수를 부감독관이 감시할 수 있는 응시자 수로 나누어, 각 시험장마다 필요한 부감독관의 수를 계산합니다. 이때 나머지가 있으면 부감독관을 한 명 더 추가합니다. 각 시험장별로 필요한 총감독관 1명과 계산된 부감독관 수를 합..

백준 3190: 뱀, 파이썬 시뮬레이션

게임의 개요 '뱀 게임'은 고전 도스 게임에서 영감을 받은 간단한 시뮬레이션 게임입니다. 이 게임의 목표는 뱀을 조종하여 사과를 먹고 뱀의 길이를 늘리는 동시에 벽이나 자신의 몸과 부딪히지 않도록 하는 것입니다. 게임은 NxN 크기의 정사각형 보드에서 진행되며, 뱀은 게임이 시작될 때 보드의 맨 위 왼쪽 칸에서 시작합니다. 게임 규칙 이동: 뱀은 매 초마다 한 칸씩 이동합니다. 사과: 뱀이 사과가 있는 칸으로 이동하면 사과를 먹고 길이가 늘어납니다. 충돌: 뱀이 보드의 벽이나 자기 자신과 부딪히면 게임이 끝납니다. 방향 전환: 특정 시간에 뱀의 방향을 왼쪽 또는 오른쪽으로 90도 회전시킬 수 있습니다. 파이썬으로 구현하기 파이썬을 사용하여 이 게임을 시뮬레이션할 수 있습니다. 구현은 크게 네 부분으로 나..

백준 12100: 2048 (Easy), 파이썬 코드

2048 게임의 기본 규칙 4x4 크기의 보드에서 시작합니다. 한 번의 이동으로 보드 위의 모든 타일을 상, 하, 좌, 우 중 한 방향으로 이동시킵니다. 같은 숫자의 두 타일이 충돌하면 합쳐져서 하나의 타일이 됩니다. 한 번의 이동에서 한 번 합쳐진 타일은 다시 합쳐지지 않습니다. 문제 해결의 접근 주어진 N×N 크기의 보드에서 최대 5번의 이동으로 얻을 수 있는 가장 큰 타일을 찾는 것이 목표입니다. 이 문제를 해결하기 위해, 각 이동 시 모든 가능한 결과를 탐색하는 깊이 우선 탐색(DFS) 알고리즘을 사용할 수 있습니다. 파이썬 코드 구현 이동 함수 정의: 타일을 특정 방향으로 이동시키는 함수를 정의합니다. 이 함수는 타일이 합쳐질 수 있는 경우를 처리합니다. DFS 함수 구현: 모든 가능한 이동 방..

백준 13460 구슬 탈출2 : 파이썬 BFS 코드

이 글에서는 구슬 탈출 게임의 문제를 파이썬과 BFS(너비 우선 탐색) 알고리즘을 사용하여 해결하는 방법을 소개합니다. 게임의 규칙 보드는 N×M 크기의 직사각형으로, 각 칸은 1×1 크기입니다. 보드에는 빨간 구슬과 파란 구슬이 하나씩 있습니다. 목표는 빨간 구슬을 구멍으로 빼내는 것입니다. 단, 파란 구슬이 구멍에 빠지면 안 됩니다. 구슬은 손으로 건드릴 수 없고, 보드를 기울여 움직여야 합니다. 문제 해결 접근 방법 이 문제를 해결하기 위해 BFS 알고리즘을 사용합니다. BFS는 가능한 모든 움직임을 단계별로 탐색하며, 빨간 구슬이 구멍에 빠질 때까지의 최소 이동 횟수를 찾는 데 이상적인 방법입니다. 구현 단계 이동 함수 정의: 구슬을 기울이는 방향으로 움직이는 함수를 정의합니다. 구슬은 벽을 만나..

반응형
//