티스토리 뷰
반응형
문제의 저작권은 SW Expert Academy에 있습니다.
처음 python을 배우신 분들이 이해하기 쉽도록 풀이를 적었습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
TC = int(input())
for tc in range(1, TC+1):
K, N, M = map(int, input().split())
data = list(map(int, input().split())) + [N+K, N+K]
#N 종점 K 이동가능 M 정류장 개수
here = 0 #내위치
i = 0 #정류장위치
cnt = 0 #기름 넣을때 마다 +1
while here + K < N :
if here+K >= data[i+2]:
here = data[i + 2]
cnt += 1
i += 3
continue
elif here+K >= data[i+1]:
here = data[i + 1]
cnt += 1
i += 2
continue
elif here+K < data[i]:
cnt = 0
break
else:
here = data[i]
cnt += 1
i += 1
print("#%d %d"%(tc, cnt))
|
cs |
|
|
처음 풀 땐 굉장히 어렵게 느껴졌던 문제. 초반에 풀이를 찾아봤지만, 이해가 안되서 최대한 쉽게 풀어썼다.
해설
기본적인 풀이는 내 현재위치에서 더한 값을 다음에 갈 주유소의 위치와 비교하면서 풀었다
혹시나 break 모르는 사람이 있을 수 있으니 간단히 설명하면
break를 만나면 조건문이 아닌 반복문을 그만하고 다음 으로 간다. 위의 경우는 while문을 나온다
continue를 만나면 반복문 안에서 그 다음부분을 안하고, 다시 반복문 위로 올라간다.
while here + K < N :
버스의 현재위치(here)와 이동가능한 수(K)의 합이 마지막 정류장을 넘긴다면 while을 멈춘다.
if here+K >= data[i+2]:
원래는 이부분 빼고 제출했는데 testcase가 10개중 8개만 맞아서 추가 한 내용.
현재의 버스 위치에서 다음다음다음 주유소로 갈 수있는 경우를 추가 한 것이다.
(사실 완전검색하려면 for문 추가... 해야 하지만 초보자들은 아직 몰라도 된다)
elif here+K >= data[i+1]:
/현재 버스의 위치가 다음 다음 주유소에 갈 수 있으면
here = data[i + 1]
/버스의 위치를 다음 다음 정류소로 바꾸고
cnt += 1 바꾸고정류소 들린 횟수를 +1하고 i에도 +2를 한다
elif here+K < data[i]:
다음 정류장까지 못가면 break
else:
그외의 정상적으로 다음정류장으로 가는 부분을 이렇게 적었다.
반응형
'알고리즘 > sw' 카테고리의 다른 글
4837. [파이썬 S/W 문제해결 기본] 2일차 - 부분집합의 합 (0) | 2020.03.26 |
---|---|
4836. [파이썬 S/W 문제해결 기본] 2일차 - 색칠하기_python (0) | 2020.03.25 |
[파이썬 S/W 문제해결 기본] LIST1 - 구간합 _ python (0) | 2020.03.25 |
[파이썬 S/W 문제해결 기본] LIST1 - 숫자 카드 _ python (0) | 2020.03.25 |
[파이썬 S/W 문제해결 기본] LIST1 - min max _ python (0) | 2020.03.25 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- next.config.js
- 클라우데라
- Python
- typescript
- JavaScript
- nodejs
- error:0308010C:digital envelope routines::unsupported
- pandas
- Express
- Vue
- useState
- read_csv
- nextjs autoFocus
- react autoFocus
- login
- TensorFlow
- NextJS
- logout
- django
- 자료구조
- Deque
- Queue
- BFS
- DFS
- mongoDB
- useHistory 안됨
- vuejs
- UserCreationForm
- react
- 자연어처리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함