[7/18] 왕실의 나이트
구현 (115)
내 코드
temp = input()
x = temp[0]
y = int(temp[1])
cnt = 0
if ('c' <= x <= 'f'):
if (2 <= y <= 7):
cnt += 4
else:
cnt += 2
elif (x < 'c'):
if (2 <= y <= 7):
cnt += 2
else:
cnt += 1
elif (x > 'f'):
if (2 <= y <= 7):
cnt += 2
else:
cnt += 1
if (3 <= y <= 6):
if ('b' <= x <= 'g'):
cnt += 4
else:
cnt += 2
elif (y < 3):
if ('b' <= x <= 'g'):
cnt += 2
else:
cnt += 1
elif (y > 6):
if ('b' <= x <= 'g'):
cnt += 2
else:
cnt += 1
print(cnt)
로직
- 코드를 만들기 전에 모든 경우의 수를 고려하고, 이를 바탕으로 코드를 짰다. (노가다)
효율적인 코드
temp = input()
# 거꾸로 입력했을 때 바꿔줌
if (temp[0].isdigit() and temp[1].isalpha()):
temp = temp[::-1]
x = temp[0]
alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
x = alpha.index(x) + 1
y = int(temp[1])
arr = [[-2, 1], [2, 1], [-2, -1], [2, -1], [-1, 2], [1, 2], [-1, -2], [1, -2]]
cnt = 0
for row, col in arr:
width, height = x, y
width = x + row
height = y + col
if (1 <= width <= 8 and 1 <= height <= 8):
cnt += 1
print(cnt)
피드백
- 모든 경우의 수를 리스트에 저장하고, 충족되는 경우 1씩 더해준다.
- 문제 해설에 거꾸로 넣었을 때 예외처리 언급이 있어서 그것도 구현해봤다.
Author And Source
이 문제에 관하여([7/18] 왕실의 나이트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kj313903/718-왕실의-나이트저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)