내일배움캠프 TIL 23/09/22

김민재·2023년 9월 24일
0


def strToInt(str): 
    result = 0
    for idx, number in enumerate(str[::-1]):
        if number == '-':
            result *= -1
        else:
            result += int(number) * (10 ** idx)
    return result

코드카타 문제(문자열을 정수로 바꾸기)의 재밌는 해설
문자열은 iterable하니까 for문을 돌면서 -1, 즉 거꾸로 슬라이싱 해나가는데 음수를 표현하는 -는 항상 숫자의 제일 처음에 표기되고 여기서는 -1부터 거꾸로 잘라나가기 때문에 제일 끝에 항상 if number == '-': 의 조건이 달성된다. 그래서 앞에서 숫자들이 거꾸로 나열되었고 마지막에 그 결과값에 -1을 곱해주면서 음수가 되는 구성.
그리고 이렇게 뽑아낸 값들을 10의 배수 자리만큼 int화 해서 곱해준다.
사실 int를 알고있고 사용한다고 하면, 더 쉽게 만들 수 있는 방법이 있지만 for문과 if문을 활용한 방식에 재미를 느낄 수 있다.


  • sort : 리스트의 값을 내림차순으로 정렬, 정렬된 값이 원래의 리스트가 된다.
  • sorted : 마찬가지로 값을 내림차순으로 정렬해주지만, 리스트가 아닌 iterable한 값이라면 리스트화 시켜서 정렬해준다. 그리고 정렬된 값이 새로운 리스트로, 원래의 리스트는 기존의 값을 유지한다.

0개의 댓글