본문 바로가기
728x90

Study/Coding Test49

[백준] 18428 - 감시 피하기 Python https://www.acmicpc.net/problem/18428 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net import sys input = sys.stdin.readline def backtracking(cnt): global flag if cnt == 3: if bfs(): flag = True return else: for i in range(N): for j in range(N): if graph[i][j] == "X": graph[i][j] = "O" backtracking(cnt +.. 2023. 6. 28.
[백준] 11053 - 가장 긴 증가하는 부분 수열 Python https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net import sys input = sys.stdin.readline N = int(input()) M = list(map(int, input().split(" "))) dp = [1] * N for i in range(N + 1): for j in range(i, N): if M[i] < M[j]: dp[j] = max.. 2023. 6. 27.
[백준] 5430 - AC Python https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net import sys from collections import deque t = int(input()) for i in range(t): p = sys.stdin.readline().rstrip() n = int(input()) arr = sys.stdin.readline().rstrip()[1:-1].split(",") queue = deque(arr) rev, front, back = 0, 0, len(queue)-1 flag = 0 if n == .. 2023. 6. 5.
[백준] 11727 - 2×n 타일링 2 Python https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net import sys input = sys.stdin.readline N = int(input()) dp = [0] * 1001 dp[1] = 1 dp[2] = 3 if N >= 3: for i in range(3, N + 1): dp[i] = dp[i - 1] + dp[i - 2] * 2 print(dp[N] % 10007) else: print(dp[N]) 2023. 6. 5.
[백준] 11726 - 2×n 타일링 Python https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net # dp[i] = dp[i - 1] + dp[i - 2] import sys input = sys.stdin.readline N = int(input()) dp = [0] * (N + 1) if N >= 3: dp[1] = 1 dp[2] = 2 for i in range(3, N + 1): dp[i] = dp[i - 1] + dp[i - 2] print(dp[N] % 10007) else: print(N) 2023. 6. 4.
[백준] 2579 - 계단 오르기 Python https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net # dp[0] = stair[0] # dp[1] = stair[0] + stair[1] # dp[2] = max(stair[0] + stair[2], stair[1] + stair[2]) # dp[3:] = max(dp[i - 3] + stair[i - 1] + s[i], dp[i - 2] + s[i]) import sys input = sys.stdin.readline N = int(input()) stai.. 2023. 6. 2.
728x90