코딩

[COS Pro 1급] 문제5) 소용돌이 수 - python

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

문제


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

 

 

풀이 

드디어 생각을 해야하는 문제가 나왔습니다...
더 쉽게 풀 수 있는 방법이 분명 있을텐데, 조건이 까다롭게 들어가서 생각보다 제어가 잘 안되었네요. 

배열이동에 대하여 명확한 종료조건을 먼저 설정하여 my_range() 란 함수를 작성했습니다. 그리고 direction을 나타낼 dx, dy를 list형태로 관리하여 배열 이동에 사용했습니다. 

 

def my_range(x,y,n) :
	return 0<=x and x<n and 0<=y and y<n

def solution(n):
	answer = 0
	matrix = [[0 for j in range(n)] for i in range(n)]
	dx = [1,0,-1,0]
	dy = [0,1,0,-1]
	iy, ix = 0, 0	 
	num = 1 # 시작값
	
	while my_range(iy,ix,n) and matrix[iy][ix]==0 :		
		for k in range(4): # 방향배열(dx,dy)크기
			if not my_range(iy,ix,n) or matrix[iy][ix]!=0 :
				break
			while True :
				matrix[iy][ix] = num
				num+=1
				nx = ix + dx[k]
				ny = iy + dy[k]
				if not my_range(ny,nx,n) or matrix[ny][nx]!=0 :					
					iy += dy[(k+1)%4]
					ix += dx[(k+1)%4]
					break
				ix = nx
				iy = ny
				
	for i in range(n):
		answer += matrix[i][i]
		
	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