전체 글
[백준/9019/파이썬] DLSR
https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net Problem 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 주어진 서로 다른 두 정수 A와 B(A ≠ B)에 대하여 A를 B로 바꾸는 최소한의 명령어를 생성하는 프로그램을 작성하세요. 조건 D: D 는 n을 두 배로 바꾼다. 결과 값이 9999 보다 큰 경우에는 10000 으로 나눈 나머지를 취한다. 그 결과 값(2n mod 10000)을 레지스터에 저장한다..
[백준/16397/파이썬] 탈출
https://www.acmicpc.net/problem/16397 16397번: 탈출 첫 번째 줄에 N (0 ≤ N ≤ 99,999), T (1 ≤ T ≤ 99,999), G (0 ≤ G ≤ 99,999)가 공백 하나를 사이에 두고 주어진다. 각각 N은 LED로 표현된 수, T는 버튼을 누를 수 있는 최대 횟수, G는 탈출을 위해 똑같이 www.acmicpc.net Problem 홍익이는 최대 T회 버튼을 누를 수 있고, 그 횟수 안에 LED로 표현된 N을 G와 같게 만들어야 탈출할 수 있다. 홍익이는 최소한의 횟수로 버튼을 눌러 탈출하려고 한다. 조건 버튼 A를 누르면, N이 증가한다. 버튼 B를 누르면, N이 2가 곱해진 뒤, 0이 아닌 가장높자릿수의 숫자가 1 줄어든다. 예를들어, 123 -> 2..
[백준/1697/파이썬] 숨바꼭질
https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net Problem 수빈이와 동생이 숨바꼭질을 하는 중이다. 수빈이와 동생의 위치가 주어졌을때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간을 구하여라. 조건 수빈이의 위치가 X라고 할 때, 수빈이는 2*x,x+1,x-1로 이동할 수 있다. 현재 점 N(0≤N≤100,000),동생은 점 K(0≤K≤100,000)에 있다. SOL) BFS는 최단시간을 알아낼 수 있는 탐색방법..
[백준/5014/파이썬] 스타트링크
https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net Problem 강호가 G층에 도착하려면 ,버튼을 적어도 몇 번 눌러야 하는지 구하는 프로그램을 작성하시오. 조건 F : 건물의 층수, S : 현재 위치, G : 목표 위치, U : 위로 U 층 가는 버튼, D : 아래로 D 층 가는 버튼 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. SOL) 항상 2차원 맵에서 경로 찾기를 하다가, 갑자기 생소하게 1차원 배열을 가지고 놀아야한다. 처음에는 이게 BFS..
[백준/7562/파이썬] 나이트의 이동
https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net Problem 체스판 위에 한 나이트가 놓여져 있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 있을까 조건 입력의 첫째 입력에는 테스트 케이스의 개수가 주어진다. 두번째 입력에는 체스판의 한 변의 길이 l(4 ≤ l ≤ 300)이 주어진다. 둘째 줄과 셋째 줄에는 나이트가 현재 있는 칸, 나이트가 이동하려고 하는 칸이 주어진다. from collecti..
[백준/7576/파이썬] 토마토
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net Problem 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 조건 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. 단, 2 ≤ M,N ≤ 1,000 이다. 여러분은 토마토가 모두 익을 때까지의 최소 날짜를 출력..
[백준/2206/파이썬] 벽 부수고 이동하기
https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net BFS/DFS에서 길을 찾아야하는데, 이번에는 벽을 부술 수 있게 되었다. 기존의 BFS/DFS과 다른 유형의 문제이다. SOL) "벽을 부순다는 개념을 어떻게 구현 해줄까." 가 key point인 문제이다. idea 1. 진짜, board에 벽을 1 → 0으로 바꿔주고, 다시 탐사를 진행한다. ⇒ 1000*1000 맵이기 때문에, 벽을 다 하나씩 바꾸고 bfs를 돌리면..
[백준/3055/파이썬] 탈출
https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 이 숲에는 도치가 있어요. 도치는 제일 친한 친구의 비버의 굴로 도망가려고 합니다. 티떱숲은 RC map입니다. 비어있는곳은 '.' , 물이 있는 지역은 '' , 돌은 'X' , 비버의 굴은 'D',고슴도치의 위치는 'S'로 나타내어져 있다. 불 문제랑 똑같은 메커니즘으로 생각하면 된다. 첫번째 solve는 불 문제랑 똑같이 시뮬레이션 형식으로 풀었다. import sys from collections imp..