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
반응형
'자기계발 > 그외 준비하는것' 카테고리의 다른 글
[Python]COS_PRO_기출 3회차[6-10]풀이 (1) | 2022.10.26 |
---|---|
[Python]COS_PRO_기출 3회차[1-5]풀이 (0) | 2022.10.26 |
[Python]COS_PRO_기출2회차[1-5]풀이 (0) | 2022.10.26 |
[Python]COS_PRO_기출 1회차 [6-10]풀이 (1) | 2022.10.23 |
[Python]COS_PRO_기출 1회차 [1-5]풀이 (0) | 2022.10.22 |