Development Artist

[COS Pro 1급, Python] 3차 1번 : 배열을 회전시켜보세요 본문

Algorithm/COS

[COS Pro 1급, Python] 3차 1번 : 배열을 회전시켜보세요

JMcunst 2022. 2. 25. 11:42
728x90
반응형

문제 유형

 빈칸

난이도

 easy

Note 

 1. func_b 체크. 2개의 배열이 rotate하는지 안하는지 확인하는 함수. first 배열의 요소들은 더하고 second 요소들은 빼줘서 각 인덱스 값이 0이면 rotate 한다.

 

Code

# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
# 3차 1번

def func_a(arr):
	ret = arr + arr
	return ret

def func_b(first, second):
	MAX_NUMBER = 1001
	counter = [0 for _ in range(MAX_NUMBER)]
	for f, s in zip(first, second):
		counter[f] += 1
		counter[s] -= 1
	for c in counter:
		if c != 0:
			return False
	return True

def func_c(first, second):
	length = len(second)
	for i in range(length):
		if first[i : i + length] == second:
			return True
	return False

def solution(arrA, arrB):
	if len(arrA) != len(arrB):
		return False
	if func_b(arrA, arrB):
		arrA_temp = func_a(arrA)
		if func_c(arrA_temp, arrB):
			return True
	return False

arrA1 = [1, 2, 3, 4]
arrB1 = [3, 4, 1, 2]
ret1 = solution(arrA1, arrB1)

print("solution 함수의 반환 값은", ret1, "입니다.")

arrA2 = [1, 2, 3, 4]
arrB2 = [1, 4, 2, 3]
ret2 = solution(arrA2, arrB2)

print("solution 함수의 반환 값은", ret2, "입니다.")

 

※ 가끔 코드 중 print(~)가 있습니다. 정리 못한 점 죄송합니다.

728x90
반응형
Comments