728x90
반응형
https://www.codewars.com/kata/5bb904724c47249b10000131/train/python
Total amount of points
x:y 인 형태로 점수가 들어 있는 배열을 입력받아서 x가 y보다 클 경우는 포인트를 3점 더하고 x가 y와 같을 경우는 1을 더한 후 포인트를 되돌려주면 됩니다.
우선적으로 배열 안의 x:y만 출력되도록 만들어보면 아래의 코드와 같습니다.
games = ['1:0', '2:0', '3:0', '4:0', '2:1', '3:1', '4:1', '3:2', '4:2', '4:3']
for i in games:
print(i)
|
결과는 아래와 같습니다.
이 값들을 ':'을 기준으로 앞 뒤로 나눈 뒤 ':' 앞의 값을 x 변수에 뒤의 값을 y 변수에 저장하겠습니다.
그 뒤 x와 y를 출력해보겠습니다.
games = ['1:0', '2:0', '3:0', '4:0', '2:1', '3:1', '4:1', '3:2', '4:2', '4:3']
for i in games:
tmp = i.split(':')
x = tmp[0]
y = tmp[1]
print(tmp, x, y)
|
결과는 아래와 같습니다.
이제 points 변수를 생성한 뒤 x가 y보다 클 경우는 3점 더하고 x가 y와 같을 경우는 1을 더해 보도록 하겠습니다.
games = ['1:0', '2:0', '3:0', '4:0', '2:1', '3:1', '4:1', '3:2', '4:2', '4:3']
points = 0
for i in games:
tmp = i.split(':')
x = tmp[0]
y = tmp[1]
if x > y:
points += 3
elif x == y:
points += 1
print(points)
|
결과 값으로 30이 출력됩니다.
전체 코드
def points(games):
points = 0
for i in games:
print(i)
tmp = i.split(":")
if tmp[0] > tmp[1]:
points += 3
elif tmp[0] == tmp[1]:
points += 1
return points
if __name__=='__main__':
answer = points(['1:0', '2:0', '3:0', '4:0', '2:1', '3:1', '4:1', '3:2', '4:2', '4:3'])
print(answer)
answer = points(['1:1', '2:2', '3:3', '4:4', '2:2', '3:3', '4:4', '3:3', '4:4', '4:4'])
print(answer)
answer = points(['0:1', '0:2', '0:3', '0:4', '1:2', '1:3', '1:4', '2:3', '2:4', '3:4'])
print(answer)
answer = points(['1:0', '2:0', '3:0', '4:0', '2:1', '1:3', '1:4', '2:3', '2:4', '3:4'])
print(answer)
answer = points(['1:0', '2:0', '3:0', '4:4', '2:2', '3:3', '1:4', '2:3', '2:4', '3:4'])
print(answer)
|
저는 귀찮아서 x와 y 변수를 생성하지 않고 if 구문을 작성했지만 처음 해보시는 분들이라면 해보시는 것을 추천합니다.
아래와 같이 한 줄로 줄이는 것도 가능하지만 초보자 분들께는 굳이 추천드리지는 않습니다.
참고로 아래와 같은 식이 가능한 이유는 x와 y는 0보다 크거나 같고 4보다 작거나 같기 때문에 가능합니다.
def points(a):
return sum((x >= y) + 2 * (x > y) for x, y in (s.split(":") for s in a))
|
반응형
'알고리즘 > 코드워' 카테고리의 다른 글
[python]Sudoku Solution Validator (0) | 2020.04.24 |
---|---|
[python]Get Planet Name By ID (0) | 2020.04.24 |
[python]Expressions Matter (0) | 2020.04.20 |
[python]Abbreviate a Two Word Name (0) | 2020.04.19 |
[python]Did I Finish my Sudoku? (0) | 2020.04.18 |