https://school.programmers.co.kr/learn/courses/30/lessons/148653
나의 풀이 (코드실행에서만 통과)
def solution(storey):
answer = 0
for i in str(storey):
if int(i) > 5:
answer += (11 - int(i))
else:
answer += int(i)
return answer
- 주어진 예제케이스만 생각하였다.
- 이후 새로운 에제케이스를 찾았다.
- 646 -> 650 -> 700 -> 1000 => 13
나의 풀이 - 다른 사람 풀이 참조
def solution(storey):
answer = 0
while storey:
remain = storey % 10
if (remain > 5):
answer += (10 - remain)
storey += 10
elif (remain < 5):
answer += remain
else:
if ((storey // 10) % 10 > 4):
storey += 10
answer += remain
storey //= 10
return answer
후기
- while문을 써야겠다는 생각을 못했다.
- // 연산자를 잊고 있었다.
- 5일 경우를 잘 생각해야 하는 문제같다.
'알고리즘 > 알고리즘 문제' 카테고리의 다른 글
[python] 프로그래머스 > 구명보트 (0) | 2023.05.30 |
---|---|
[python] 프로그래머스 > 연속된 부분 수열의 합 (0) | 2023.05.29 |
[python] 프로그래머스 > H-index (0) | 2023.05.23 |
[python] 프로그래머스 > 이진변환반복하기 (0) | 2023.05.18 |
[python] 프로그래머스 > 뒤에 있는 큰 수 찾기 (0) | 2023.05.18 |