본문 바로가기

Algorithm/Greedy

[Python] TCT: 왕실의 나이트

#문제

이것이 코딩테스트다 P.115

velog.io/@uhan2/%EC%9D%B4%EA%B2%83%EC%9D%B4-%EC%BD%94%EB%94%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%8B%A4.Part02.Chapter04-%EC%99%95%EC%8B%A4%EC%9D%98-%EB%82%98%EC%9D%B4%ED%8A%B8-Java

 

[이것이 코딩 테스트다.Part02.Chapter04] - 왕실의 나이트 (Java)

todayilearned.Algorithm.solveProblem(왕실의 나이트)

velog.io

#풀이 & 학습한 내용

파이썬에서 문자를 아스키코드로, 아스키코드를 문자로 바꾸는 ord(), chr()가 있는데, 이 문제에서는 ord()를 활용해서 문제를 해결했습니다. 가능한 경우에 대해 리스트에 넣어두고, for문으로 접근하는 법 또한 익힐 수 있었습니다.

또한, 파이썬에서는 다른 언어와 다르게 a<=b<=c로 적을 수 있다는 점을 이용해서 보다 간결하게 코드를 작성할 수 있었습니다.

#소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#가능한 경우 리스트에 넣어두고 for문으로 접근하기
going = [(+2,-1),(+2,+1),(-2,-1),(-2,+1), \
(+1,-2),(+1,+2),(-1,-2),(-1,+2)]
 
my_str = input()
 
#ord는 문자를 아스키코드로
#chr는 아스키코드를 문자로
x=ord(my_str[0])-ord('a')+1
y=int(my_str[1])
 
ans = 0
 
for go in going:
  if (1<=x+go[0]<=8and (1<=y+go[1]<=8):
    ans+=1
 
print(ans)
cs

 

github.com/HoYoungChun/Algorithm_PS/blob/master/Greedy/TCT_%EC%99%95%EC%8B%A4%EC%9D%98%20%EB%82%98%EC%9D%B4%ED%8A%B8.py

 

HoYoungChun/Algorithm_PS

Baekjoon Online Judge, Programmers problem solving by Python, C++ - HoYoungChun/Algorithm_PS

github.com