Algorithm/Simulation 35

[Python] 프로그래머스 '자물쇠와 열쇠'

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key를 90도씩 회전하는 함수 따로 구현 자물쇠의 3배 크기인 지도를 새로 만들기 자물쇠의 홈과 열쇠의 홈이 만나면 값이 1이 되므로 자물쇠에 열쇠를 넣고 모든 부분의 합이 1이 되면 True 한 곳이라도 1이 아니라면 False출력 코드 # key 90도 회전 def rotate_a_matrix_by_90_degree(a): n = len(a) #행 m = len(a[0]) #열 result = [[0] * m for _ in range(n)] #결과리스트 for i in range(n): ..

[Python] 게임 개발

문제 현민이는 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중이다. 캐릭터가 있는 장소는 1 x 1 크기의 정사각형으로 이뤄진 N x M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한 곳을 바라본다 맵의 각 칸은(A, B)로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수, B는 서쪽으로부터 떨어진 칸의 개수이다 게임 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다 캐릭터의 움직임을 설정하기 위해 정해 놓은 메뉴얼은 이러하다 1. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전 한 방향)부터 차례대로 갈 곳 을 정한다 2. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향으로 회전한 ..

[Python] 왕실의 나이트

문제 8 x 8 좌표평면에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하시오 이 때 왕실의 정원에서 행 위치를 표현할 때는 1부터 8로 표현하며, 열 위치를 표현할 때는 a부터 h로 표현한다 나이트는 이동할 때 L자 형태로만 이동할 수 있으며 다음과 같은 2가지 경우로 이동할 수 있다 1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 입력 첫째 줄에 8 x 8 좌표 평면상에서 현재 나이트가 위치한 곳의 좌표를 나타내는 두 문자로 구성된 문자 열이 입력된다 입력 문자는 a1처럼 열과 행으로 이뤄진다 출력 첫째 줄에 나이트가 이동할 수 있는 경우의 수를 출력하시오 문제 풀이 입력받은 후 행과 ..