아무리 그래도 고작 level 2를 4시간 잡고 있는 건 참 너무하다.
난 바보다.
문제: 프로그래머스 - (추가 예정)
난이도: level 2
나의 코드
def solution(n):
answer = ""
answer, i = cal(n)
if i != 1:
for k in range(i-1):
n = n - pow(3,k)
answer, i = cal(n-2)
if i+1 != len(answer):
answer = "0" + answer
answer = answer.replace('2','4')
answer = answer.replace('1','2')
answer = answer.replace('0','1')
reversed_str = "".join(reversed(answer))
return reversed_str
def cal(n):
answer = ""
n = n-1
q = 100
i = 0
while q != 0:
q,r = divmod(n,3)
n = q
answer = answer + str(r)
i = i + 1
return answer, i
배운 점
가장 많이 시간이 걸린 부분은 pow 연산이 있는 줄에서 n이 음수가 되어 실행이 안되는 문제였다.
당연히 음수가 되면 안되고 알고리즘을 수정하여 잘 맞췄다.
if문이나 for문의 조건부는 괄호가 필요없는데, 오류완 상관이 없지만 이 부분도 주의해야 할 것 같다.
소감
위와 같은 코드를 완성하는 데에 그렇게 시간이 걸렸다.
알고리즘 자체를 비효율적이고 어렵게 푼 것 같다.
그런데 테스트 케이스는 겨우 통과했는데
제출하니까 빵점이었다.
안그래도 자학적 마음이 커져 있었는데 빵점을 보니 바로 포기할 수 있었다.
그리고 그 날 저녁엔 상심이 너무 커서 코딩 관련 내용은 단 하나도 보고 싶지 않았다.
난 바보다.
모범 답안은 다음에 확인할 것이다.
사실 너무 궁금하지만 나에게 화가 풀리고 나서 보고싶다…
반응형
'전공 > coding test' 카테고리의 다른 글
코테 테스트케이스 주의하기 (0) | 2022.08.03 |
---|---|
코딩테스트5 (0) | 2022.05.31 |
프로그래머스3 - 첫 level up! (0) | 2022.03.31 |
프로그래머스 2 - 더 좋은 코드란. 기본은 틀리지 말자. (0) | 2022.03.30 |
코딩테스트 1 - 런타임 에러란 (0) | 2022.03.29 |
댓글