Modern

[COS Pro 1급] 문제6) 체스의 나이트 - python 본문

코딩

[COS Pro 1급] 문제6) 체스의 나이트 - python

네칼림 2023. 5. 9. 00:54

문제


구름Edu에서 제공하는 COS Pro 예제

 

 

 

풀이 

나이트는 총 8가지 위치로 움직일 수 있습니다. 이를 배열의 크기로 나타낸다면,

direction = [ [1,2],[-1,2],[1,-2],[-1,-2],[2,1],[-2,1],[2,-1],[-2,-1] ] 

으로 표현할 수 있습니다. 현재 위치에 위의 움직일 수 있는 위치값을 더하여 체스판안에 존재한다면 성공!

체스판의 A~H를 숫자로 변환하기 위해 ASCII 코드를 활용했습니다. 

영문자 A의 아스키코드값은 65입니다. 따라서 ASCII코드 변환 함수인 ord('A)에서 64를 빼주면 1이 됩니다. 이와 마찬가지로 B에서 64를 빼면 2가 됩니다.

 

def solution(pos):
	answer = 0
	direction = [[1,2],[-1,2],[1,-2],[-1,-2],[2,1],[-2,1],[2,-1],[-2,-1]]
	matrix = [[0 for j in range(8)] for i in range(8)]
	# print(direction)
	# print(matrix)
	kpos = [ord(pos[0])-64, int(pos[1])]
	# print(ord(pos[0])-64, pos[1])
	# print(kpos, len(direction))
	
	
	for ind, val in enumerate(direction) : 
		npos = [kpos[i]+val[i] for i in range(len(val))]
		# print(npos)
		if npos[0] >= 1 and npos[0] <= 8 and npos[1] >= 1 and npos[1] <= 8 :
			answer+=1
	
	return answer

 

 

 


COS Pro의 예시 문제는 아래 링크에서 확인 가능합니다.

코딩전문가자격시험, COS Pro(Coding Specialist Professional) (ybmit.com)

 

MOS 공식 사이트, COS 공식 사이트, COS Pro 공식 사이트, DATA 공식 사이트

Microsoft 국제인증 자격시험, Scratch, Entry(블록코딩)에 대한 자격증, Python, C, C++, Java에 대한 자격증, Python, Excel에 대한 데이터 분석 자격증

www.ybmit.com

 

시험환경과 유사하게 테스트 해보기 위해서는 여러 사이트에 코딩테스트 형식으로 등록이 되어 있는데, 구름EDU가 가장 깔끔한 것 같아 이 곳을 추천합니다.
COS PRO 1급 기출문제 - Python - 구름EDU (goorm.io)

 

COS PRO 1급 기출문제 - Python - 구름EDU

YBMIT에서 시행하는 COS Pro 자격증으로 기출문제를 직접 풀어볼 수 있는 실습 위주의 강좌입니다.

edu.goorm.io