구현(완전탐색)

PANGHYUK·2022년 1월 8일
0

알고리즘 스터디

목록 보기
2/13
post-thumbnail

구현 알고리즘이란?

문제 1 - 상하좌우

풀이

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 = ['L','R','U','D']

for plan in plans:
    for i in range(len(move)):
        if plan == move[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 = int(input())
cnt = 0

for i in range(h+1):
    for j in range(60):
        for k in range(60):
            if '3' in str(i)+str(j)+str(k): # 3이 포함되어 있으면 cnt: + 1
                cnt += 1

print(cnt)

문제 3 - 왕실의 나이트

풀이

data = input()
row = int(data[1])
col = int(ord(data[0])) - int(ord('a')) + 1 # 아스키 코드

steps = [(-2,-1),(-2,1),(2,-1),(2,1),(-1,-2),(-1,-2),(1,-2),(1,2)] # 방향 벡터 정의

cnt = 0
for step in steps:
    n_row = row + step[0]
    n_col = col + step[1]

    if n_row >= 1 and n_row <= 8 and n_col >= 1 and n_col <= 8:
        cnt += 1

print(cnt)

0개의 댓글