1. 상하좌우
# 상하좌우
#N을 입력받는다.
n=int(input())
x,y=1,1
plans=input().split()
#L,R,U,D에 따른 이동 방향
dx=[0,0,-1,1]
dy=[-1,1,0,0]
move_types=['L','R','U','D']
#이동 계획을 하나씩 확인한다.
for plan in plans:
#이동 후에 좌표를 구한다.
for i in range(len(move_types)):
if plan==move_types[i]:
nx=x+dx[i]
ny=y+dy[i]
# 공간을 벗어나면 무시한다.
if nx<1 or ny<1 or nx>n or ny>n:
continue
#이동한다.
x,y=nx,ny
print(x,y)
2. 시각
#시각
#H를 입력받는다.(시간)
h=int(input())
count=0
for i in range(h+1):
for j in range(60):
for k in range(60):
#매 시각 안에 3이 포함되어 있으면 카운트값 증가
if '3' in str(i)+str(j)+str(k):
count+=1
print(count)
3. 왕실의 나이트
#왕실의 나이트
#현재 나이트의 위치 입력받기
input_data=input()
row=int(input_data[1])
column=int(ord(input_data[0]))-int(ord('a'))+1
#ord는 문자의 유니코드 값을 반환
#나이트가 이동할 수 있는 8가지 방향을 정의한다.
steps=[(-2,-1),(-1,-2),(1,-2),(2,-1),(2,1),(1,2),(-1,2),(-2,1)]
#8가지 방향에 대하여 각 위치로 이동이 가능한지 확인한다.
result=0
for step in steps:
#이동하고자 하는 위치를 확인한다.
next_row=row+step[0]
next_column=column+step[1]
#해당 위치로 이동이 가능하다면 카운트 값을 증가
if next_row>=1 and next_row<=8 and next_column>=1 and next_column<=8:
result+=1
print(result)
4. 게임 개발
#게임 개발
#N, M을 공백으로 구분하여 입력받는다.
n,m=map(int,input().split())
#방문한 위치를 저장하기 위한 맵을 생성하여 0으로 초기화
d=[[0]*m for _ in range(n)]
#현재 캐릭터의 X좌표, Y좌표, 방향을 입력받기
x,y,direction=map(int,input().split())
d[x][y]=1 #현재 좌표 방문 처리
#전체 맵 정보를 입력받기
array=[]
for i in range(n):
array.append(list(map(int,input().split())))
#append()함수는 리스트의 맨 마지막에 ()안에 있는 요소를 덧 붙이는 함수이다.
#북, 동, 남, 서 방향 정의
dx=[-1,0,1,0]
dy=[0,1,0,-1]
#왼쪽으로 회전
def turn_left():
global direction
direction-=1
if direction==-1:
direction=3
#시뮬레이션 시작
count=1
turn_time=0
while True:
#왼쪽으로 회전
turn_left()
nx=x+dx[direction]
ny=y+dy[direction]
#회전한 이후에 정면에 가보지 않은 칸이 있다면 이동한다.
if d[nx][ny] == 0 and array[nx][ny] == 0:
d[nx][ny]=1
x=nx
y=ny
count+=1
turn_time=0
continue
#회전한 이후에 정면에 가보지 않은 칸이 없거나 바다인 경우
else:
turn_time+=1
#네 방향 모두 갈 수 없는 경우
if turn_time==4:
nx=x-dx[direction]
ny=y-dy[direction]
#뒤로 갈 수 있다면 이동하기
if array[nx][ny]==0:
x=nx
y=ny
#뒤가 바다로 막혀있는 경우
else:
break
turn_time=0
print(count)
'알고리즘' 카테고리의 다른 글
프로그래머스-폰켓몬 (0) | 2022.05.26 |
---|---|
프로그래머스-신규 아이디 추천 (0) | 2022.05.25 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (0) | 2022.05.17 |
DFS/BFS (0) | 2021.07.06 |
코테 공부- 그리디 알고리즘 (0) | 2021.07.03 |
댓글