Study
-
[백준] 9095번_1,2,3더하기Study/알고리즘 2020. 3. 11. 17:52
문제 링크 : https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 www.acmicpc.net d = [0]*11 d[1]=1;d[2]=2;d[3]=4 for _ in range(int(input())): ..
-
[백준] 11727번_2Xn타일링2Study/알고리즘 2020. 3. 11. 16:09
문제 링크 : https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. www.acmicpc.net n = int(input()) d = [0] *1001 d[0] = 1 d[1] = 1 for i in range(2,n+1): d[i] = d[i-1] + d[i-2] + d[i-2] d[i] %= 10007 print(d[n]) 앞선 문제에 한 가지 경우(가장 마지막에 할 수 있는 일이 2x2로 채우는 것)가 추가되었다.
-
[백준] 11726번_2Xn타일링Study/알고리즘 2020. 3. 11. 15:26
문제 링크 : https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net n = int(input()) d = [0]*1001 d[1] = 1 d[2] = 2 for i in range(3,n+1): d[i] = d[i-1]+d[i-2] d[i] %= 10007 print(d[n]) dp는 점화식 세우는 게 핵심인 것 같다.
-
[백준] 1463번_1로만들기Study/알고리즘 2020. 3. 11. 14:57
문제 링크 : https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net n = int(input()) d = [0]*(n+1) for i in range(2,n+1): d[i] = d[i-1] + 1 if i%2 == 0 and d[i] > d[i//2]+1: d[i] = d[i//2]+1 if i%3 == 0 and d[i] > d[i//3]+1: d[i] = d[i//3]+1 print(d[n]) bottom-up 방식으로 풀었다. 파이썬은 재귀를 사용하게 되는 top-down 방식으로 풀면 시간과 메모리 모두 많이 쓴다기에 dp 다시 차근차근 풀어보며 botto..
-
[백준] 3055번_탈출Study/알고리즘 2020. 3. 2. 11:12
문제 링크 : https://www.acmicpc.net/problem/3055 3055번: 탈출 문제 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다. 티떱숲의 지도는 R행 C열로 이루어져 있다. 비어있는 곳은 '.'로 표시되어 있고, 물이 차있는 지역은 '*', 돌은 'X'로 표시되어 있다. 비버의 굴은 'D'로, 고슴도치의 위치는 'S'로 나 www.acmicpc.net from collections import deque r,c = map(int,input().split()) woods = [..
-
[백준] 1261번_알고스팟Study/알고리즘 2020. 2. 28. 00:44
문제 링크 : https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미한다. (1, 1)과 (N, M)은 항상 뚫려있다. www.acmicpc.net from collections import deque m,n = map(int,input().split()) maze = [list(map(int,input())) for _ in range(n)] dx = (-1,1,0,0) dy = (0,0,-1,1) dist = [[-1]*m for _ in range(n)..
-
[백준] 13549번_숨바꼭질3Study/알고리즘 2020. 2. 27. 23:58
문제 링크 : https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 www.acmicpc.net from collections import deque s, sis = map(int,input().split()) ..
-
[백준] 14226번_이모티콘Study/알고리즘 2020. 2. 26. 21:32
문제 링크 : https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만들어 보려고 한다. 화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다. 클립보드에 있는 모든 이모티콘을 화면에 붙여넣기 한다. 화면에 있는 이모티콘 중 하나를 삭제한다. 모든 연산은 1초가 걸린다. 또, 클립보드에 이모티콘을 복사하면 이전에 클립보드에 있던 내용 www.acmicpc.net from collections import deque MAX = 1001 s = int(input()) check = ..