TIL: Day 89, 90

근당·2023년 7월 3일
0

KraftonJungle

목록 보기
76/77

Algorithm

leetcode의 두 번째 문제였던 'fraction to recurring decimal'을 드디어 해결했다. 유빈형과 협력해서 풀었는데, 먼저 깨달았던 점은 애초에 접근을 잘못했던 것이였다. 나누기 연산('/') 자체를 사용해선 안되는 문제였다. 게다가 python 특성 상 값에 따라서 지수형태로 변환되는 문제도 있었다. 또한 관점이 몫이 아니라 나머지라는 점을 안 후로는 수월하게 해결했다.

answer = 1 / 80000

ans = str(answer).split('.')
print(ans)
print(ans[0])
print(ans[1])

나머지를 기준으로 잡으면 나머지가 같을 때를 판단하여 반복을 쉽게 찾을 수 있다.
(해답 코드)

class Solution:
    def fractionToDecimal(self, numerator: int, denominator: int) -> str:
        if numerator == 0:
            return "0"
        result = []
        if numerator * denominator < 0:
            result.append("-")
        numerator = abs(numerator)
        denominator = abs(denominator)
        result.append(str(numerator // denominator))
        remainder = numerator % denominator
        if remainder == 0:
            return ''.join(result)
        result.append(".")
        seen = {}
        while remainder != 0:
            if remainder in seen:
                result.insert(seen[remainder], "(")
                result.append(")")
                break
            seen[remainder] = len(result)
            remainder *= 10
            result.append(str(remainder // denominator))
            remainder %= denominator
        return ''.join(result)

나만무

팀이 확정되었다. 원했던 팀에 되어서 만족하고 앞으로가 기대가 된다. 주제 선정을 위해 여러가지 회의를 진행중이다. 내일까지 주제가 정해지고 멘토님 매칭이 진행될 예정이다.


토요일에 푹 쉬고 일요일에 돌아와서 바로 알고리즘을 해결했다. 스파이더맨 너무 재밌었다. 빨리 비욘드 더 유니버스 보고싶다.

profile
해윙

0개의 댓글

관련 채용 정보