본문 바로가기

전체 글23

고차함수 내용정리 (map, filter, reduce) 노션에서 보기 고차함수 내용정리 (map, filter, reduce) Swift 고차함수에 대하여 www.notion.so 0. 고차함수 고차함수란? 매개변수로 함수를 받는 함수를 말한다. Swift에서 함수는 일급시민이기 때문에 다른 함수를 전달인자로 받을 수 있다. Swift 표준 라이브러리에서는 다음과 같은 고차 함수를 제공한다 map filter reduce 모두 Container *(Array, Set, Dictionary 등)와 *Optional 타입에서 사용할 수 있다. for-in 구문과 기본적인 작동 원리가 같으나, 다음과 같은 이점이 있다. 코드가 간결하다 재사용이 쉽다 컴파일러 최적화 성능이 좋다 1. Map map이란? 제공된 클로저를 각 항목에 적용한 후, 원래의 순서와 같도록 .. 2021. 1. 6.
보수(Complement)와 보수 뺄셈에 대한 정말 쉬운 설명 노션에서 읽기 0과1로 이루어진 컴퓨터 세계에 마이너스(-) 부호가 있을 리 없다. 그렇다면 컴퓨터는 뺄셈을 어떻게 실행할까? 또, 음수는 어떻게 표현할까? 바로 👉🏻보수를 이용한다. 보수 구하기 먼저 보수가 무엇인지 알아보자. 보수의 세계엔 두가지 보수가 있다. n의 보수와, n-1의 보수가 그것이다. 2진수라면 2의 보수, 1의 보수가 존재하며 10진수라면 10의 보수, 9의 보수가 존재한다는 이야기다. 1. n-1의 보수 먼저, n-1의 보수는 해당 수를 뒤집은 수다. 🤷‍♀️ 뒤집는 게 뭘까? 주사위를 생각하면 쉬울 것이다. 1눈의 반대편엔 항상 6, 2의 반대편엔 5, 3의 반대편엔 4가 있다. 주사위의 숫자들이 8진법의 세계 안에 있다고 한다면 반대편의 눈이 각각 7의 보수가 되는 셈이다. (.. 2021. 1. 5.
[백준] 4673: 셀프 넘버 - Swift 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... n을 d(n)의 생성자라.. 2021. 1. 3.
[2020 하반기 회고] 난 이제 개발자가 될 거야! 개발자의 문화 중 회고라는 게 있다는 걸 알게됐을 때, 나도 꼭 써봐야지! 싶었다. 올해는 무엇보다 영상인에서 개발자로 진로를 바꾼 결정의 해이므로 더더욱. 깃허브 개발자 회고 모음 등을 보면 대단한 글이 많이 보이는데 (아마도 그들이 정말 대단하기 때문에...) 나는 개발이든 회고든 아직 초초초초보자이기 때문에 되는 대로 써보겠다. 어쨌든 회고의 목적은 나를 되돌아 보기 위함이니까. 2020 회고에 상반기도 포함을 시킬지 말지 고민했는데, 상반기를 제대로 돌아보려면 전 회사의 내밀한 이야기가 나올 수밖에 없어서 빼기로 했다. 짧게 회고해보자면, 회사를 빼고는 뭔가를 얘기할 수 없을만큼 나에게 집중을 못했던 시간이었고 다시는 그러지 않았으면 좋겠다. 하반기 회고는 다음과 같은 세 파트로 나누어서 작성했다.. 2020. 12. 29.
REPL로 swift하기: invalid active developer path error 해결 REPL(read-eval-print loop)이란? 간단히 말해 Command Line Tool에서 사용가능한 상호작용 프로그래밍 환경이다. 터미널을 열고 xcrun swift 를 입력하여 실행해주면 되는데... 아래와 같은 오류가 발생했다. xcrun: error: invalid active developer path (///), missing xcrun at: ~~~ 이러한 오류는 Mac OS 업데이트 후에 발생할 수도 있다고 한다. 아래와 같이 입력하면, xcode-select --install 명령어 라인 개발자 도구 설치 안내 메시지가 뜨고 설치를 진행해주면 된다. 조금 기다리면 완료! 그리고 다시 xcrun swift를 입력하여 실행하면, 잠시 후 환영 메시지와 함께 REPL이 실행된다. (.. 2020. 12. 20.