728x90
반응형
www.codewars.com/kata/54da539698b8a2ad76000228/train/python
이 문제를 간단하게 설명하면 동서남북으로 10걸음 갔을 때 제자리로 돌아왔는지 확인하는 것입니다. 입력은 string 리스트 형식입니다.
e : 동쪽 w : 서쪽 n : 북쪽 s : 남쪽
이 문제를 풀기 위해서는 2가지 조건을 만족하면 됩니다.
1. 배열의 길이가 10인가?
2. x와 y의 좌표 값이 0인가?
처음에는 동쪽(x좌표)과 남쪽(y좌표)을 +로 잡고 서쪽(x좌표)과 북쪽(y좌표)을 -로 잡은 다음 수치를 계산했었습니다.
def is_valid_walk(walk):
x = 0
y = 0
if len(walk) != 10:
return False
for i in walk:
if i is 'e':
x += 1
elif i is 'w':
x -= 1
elif i is 's':
y += 1
elif i is 'n':
y -= 1
if x == 0 and y == 0:
return True
else:
return False
|
하지만 이 말은 동쪽과 서쪽의 수가 같으면 x 좌표는 0이 되고, 남쪽과 북쪽의 수가 같으면 y좌표는 0이 됩니다.
간단하게 아래와 같이 쓸 수 있습니다.
def is_valid_walk(walk):
return walk.count('e') == walk.count('w') and walk.count('n') == walk.count('s') and len(walk) == 10
|
반응형
'알고리즘 > 코드워' 카테고리의 다른 글
[python]Mumbling (0) | 2020.10.29 |
---|---|
[python]Complementary DNA (0) | 2020.10.28 |
[python]List Filtering (0) | 2020.10.26 |
[python]Roman Numerals Encoder (0) | 2020.05.23 |
[python]Roman Numerals Decoder (0) | 2020.05.23 |