자기계발/그외 준비하는것

[Python]COS_PRO_기출2회차[6-10]풀이

개발자 덕구🐾 2022. 10. 26. 13:02
728x90

6번 로봇을 움직여주세요 

 

 

뇌 안쓰고 간단하게 만든 

def solution(commands):
	answer = [0,0]
	for c in list(commands) :
		if c == 'L' :
			answer[0]-=1
		elif c== 'R' :
			answer[0]+=1
		elif c== 'U' : 
			answer[1]+=1
		else : 
			answer[1]-=1
	return answer

 

 

글자와 방향을 zip으로 묶고 dict를 이용해서 딕셔너리로 만든다.

딕셔너리의 key를 이용해서 dx,dy를 구하고 rx,ry에 연산한다.

def solution(commands):
	answer = [0,0]
	move = dict(zip('LRUD',[[-1,0],[1,0],[0,1],[0,-1]]))
	rx,ry = 0,0
	for c in commands :
		dx,dy = move[c]
		rx+=dx
		ry+=dy
	return [rx,ry]

 

 

 

 

 

7번 거스름돈 구하기 

def solution(money):
	coin = [10, 50, 100, 500, 1000, 5000, 10000, 50000]
	counter = 0
	idx = len(coin) - 1
	while money:
		counter += (money // coin[idx])
		money %= coin[idx]
		idx -= 1
	return counter

 

 

 

 

8번 규칙에 맞는 배열 구하기 

def solution(arr):
	left, right = 0, len(arr) - 1
	idx = 0
	answer = [0 for _ in range(len(arr))]
	while left <= right:
		if idx % 2 == 0:
			answer[idx] = arr[left]
			left += 1
		else:
			answer[idx] = arr[right]
			right -= 1
		idx += 1
	return answer

 

 

 

 

9번 비밀번호 검사

def solution(password):
	length = len(password)
	for i in range(length - 2):
		first_check = ord(password[i + 1]) - ord(password[i])
		second_check = ord(password[i + 2]) - ord(password[i+1])
		if first_check == second_check and (first_check == 1 or first_check == -1):
			return False
	return True

 

 

 

10번 0들을 0으로 만들기 

def solution(s):
	s += '#'
	answer = ""
	for i in range(len(s)):
		if s[i] == '0' and s[i + 1] != '0':
			answer += '0'
		elif s[i]=='1':
			answer += '1'
	return answer
반응형