numbers
: 순서대로 누를 번호가 담긴 배열
hand
: 왼손잡이(left)인지 오른손잡이(right)인 지를 나타내는 문자열
1 | 2 | 3 |
---|---|---|
4 | 5 | 6 |
7 | 8 | 9 |
* | 0 | # |
아래와 같이 좌표 부여
[0,0] | [0,1] | [0,2] |
---|---|---|
[1,0] | [1,1] | [1,2] |
[2,0] | [2,1] | [2,2] |
[3,1] |
def solution(numbers, hand):
answer = ''
l,r= [3,0], [3,2] #초기 손가락 위치
#키패드
keys=[[3,1],
[0,0],[0,1],[0,2],
[1,0],[1,1],[1,2],
[2,0],[2,1],[2,2]]
for n in numbers:
#왼쪽 열
if n in [1,4,7]:
tmp='L'
l=keys[n]
#오른쪽 열
elif n in [3,6,9]:
tmp='R'
r=keys[n]
#가운데 열
else:
# 왼 오 거리
l_dist= abs(keys[n][0]- l[0]) + abs(keys[n][1]- l[1])
r_dist= abs(keys[n][0]- r[0]) + abs(keys[n][1]- r[1])
if l_dist!=r_dist: #거리다를때
if l_dist<r_dist:
tmp='L'
l=keys[n]
else:
tmp='R'
r=keys[n]
else: #거리 동일
tmp= hand[0].upper()
if tmp=='L':
l=keys[n]
else:
r=keys[n]
answer+= tmp
return answer
n
: 1이상, 50000000000000 이하인 양의 정수
def solution(n):
tmp = n**(1/2)
return (tmp+1)**2 if int(tmp)==tmp else -1
arr
: 길이 1 이상인 배열
def solution(arr):
arr.remove(min(arr))
return arr if arr!=[] else [-1]
num
: int 범위의 정수, 0은 짝수로 취급
def solution(num):
return 'Odd' if num%2!=0 else 'Even'