알고리즘/코드워

[python]Number of People in the Bus

(ㅇㅅㅎ) 2020. 11. 4. 23:27
728x90
반응형

www.codewars.com/kata/5648b12ce68d9daa6b000099/train/python

 

Codewars: Achieve mastery through challenge

Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential.

www.codewars.com

이 문제는 버스 탑승 인원을 계산하는 문제입니다. 버스 정류장에 설 때마다

[버스에 탑승하는 사람의 수, 버스 정류장에서 하차하는 사람의 수]

로 나타내 집니다. 마지막까지 버스에 탑승해 있는 인원수를 구하는 문제입니다.

 

예를 들어 [[10, 0], [3, 5], [5, 8]]일 경우 버스는 총 3개의 버스 정류장에 섰습니다.

1. 첫 번째 정류장 : [10, 0]

10명 탑승

첫 번째 정류장에서 10명이 버스에 탑승했습니다. 하지만, 정류장에서 하차한 사람은 없습니다.

현재까지 버스 안의 탑승 인원은 10명입니다.

 

2. 두 번째 정류장 : [3, 5]

5명 하차
3명 탑승

두 번째 정류장에서 5명이 정류장에서 하차했고 3명이 버스에 탑승했습니다.

현재까지 버스 안의 탑승 인원은 8명입니다.

 

3. 세 번째 정류장 : [5, 8]

8명 하차
5명 탑승

세 번째 정류장에서 8명이 정류장에서 하차했고, 5명이 버스에 탑승했습니다.

현재까지 버스 안의 탑승 인원은 5명입니다.

마지막 버스 정류장이 3번째 정류장이었기에 마지막까지 버스 안의 탑승 인원은 5명이 됩니다.

 

버스 정류장 승차와 하차를 배열 값으로 받기 때문에 for문과 배열 인덱스를 사용하면 쉽게 문제를 풀 수 있습니다.

버스에 탑승한 인원을 나타내는 변수(answer)를 생성 후 버스 정류장 배열의 첫 번째 원소(i[0])에서 버스 정류장 배열의 두 번째 원소(i[1])를 뺀 후 버스에 탑승한 인원에 더해 줬습니다.

 

위와 같이 풀 수도 있지만 for 문을 다음과 같이 사용할 수도 있습니다.

 

for문과 sum을 이용하면 한 줄로 표현할 수도 있습니다.

 

오늘의 여담

더보기

글이 마무리가 되어가는 시점에서 생각해보니 for문 사용할 때 i나 j 대신해서 탑승과 하차에 관한 영어 단어를 썼으면 좀 더 이해하기 편하겠다는 생각이 듭니다.

오늘의 글은 굳이 그림이 없어도 이해하실 수 있는 쉬운 문제였지만, 그림을 그려서 설명드리고 싶었습니다.

어쩌면 그냥 제가 그림을 그리고 싶었을지도 모르겠네요. :D

 

언제나 드리고 싶은 말씀이지만, 여러 가지 방법으로 문제를 풀어보는 것이 좋다고 생각이 듭니다.

반응형

'알고리즘 > 코드워' 카테고리의 다른 글

[python]Shortest Word  (0) 2020.11.07
[python]Equal Sides Of An Array  (1) 2020.11.05
[python]Disemvowel Trolls  (0) 2020.11.02
[python]Mumbling  (0) 2020.10.29
[python]Complementary DNA  (0) 2020.10.28