본문 바로가기

전체 글23

<누구나 자료 구조와 알고리즘> 책 리뷰 * 2020년 11월 15일에 작성한 velog 글을 옮겨왔습니다. 0. 독서 배경 자료 구조와 알고리즘에 대한 배경 지식이 전혀 없는 문과생 필자가 최대한 쉽게 입문하고자 택한 서적이다. 주 공부 언어인 Swift가 아닌 Ruby, Python, Javascript로 예문이 쓰여 있지만, 이를 감안하더라도 설명이 쉬우며 깊은 수학적 지식을 요하지 않아서 구매하게 되었다. 1. 서적 기본 정보 ✍️ 제이 웬그로우 지음 | 심지현 옮김 | 길벗 | 2018.06.30 출간 📖 308쪽 | 16,000 원 🔎 상세 정보 보기 2. 독서 방법 🗓 독서 기간: 2020.11.09 ~ 2020.11.14 독서를 시작한 날 6장까지 읽고 이후 2장씩 나눠 읽었다. 처음 6장은 개괄적 내용 위주라 하루에 읽기에 무리.. 2021. 2. 12.
네트워크 통신 스토리텔링💁‍♀️ - 서버/클라이언트, IP, TCP, UDP 쉬운 설명 * 인터넷 통신에 대한 기초적인 내용을 스토리텔링 방식을 엮어 정리해보았습니다. 구체적인 내용 설명보다는 추상적인 레벨에서 흐름을 이해할 수 있도록 작성하였습니다 :) Story #1 클컴퓨터 마을엔 여러 애플리케이션들이 살고 있다. 클컴퓨터 마을은 농업이 발달한 마을로, 매년 생산해내는 신선한 식재료들 덕분에 한식 산업이 융성한 곳이다. 그런 마을 안에서만 놀아도 행복한 앱들이었기에, 다른 마을과의 통신 없이도 잘 살아갈 수 있었다. 그러던 어느날, 클컴퓨터 마을의 앱 중 하나인 고구마 브라우저 는 대도시 서컴퓨터 마을에 '햄버거'라는 신문물이 있다는 소식을 듣고 관심이 생긴다. 그렇게 고구마 브라우저는 '햄버거'를 얻기 위해 네트워크 통신을 시도하는데... 🖥 서버와 클라이언트 눈치가 빠르시다면 이미.. 2021. 2. 3.
Swift 지연실행 실험 - NSTimer, asyncAfter, DispatchSourceTimer 요즘 부쩍 코드를 지연하여 실행시켜야 하는 일이 많아서 Swift Timer, Swift Delay 등의 키워드를 자주 찾아보았다. 그러면서 Swift엔 Timer(NSTimer), asyncAfter(DispatchQueue), DispatchSourceTimer 라는 딜레이 방식들이 있다는 걸 알게 되었다. 이것들이 어떻게 다른 지 한 번쯤 정리를 하고 싶었는데, 동작 원리까지 상세히 보기엔 내용이 too much라 우선은 패스하고.. 단순 비교를 통해 각각의 이모저모(?)를 살펴보려고 한다. * Xcode의 커맨드 라인 툴(macOS 플랫폼 - Command Line Tool)에서 실험하였습니다. 1. 기본 실행 우선 각 딜레이의 기본 동작 방식은 아래와 같다. asyncAfter - dispatc.. 2021. 1. 27.
[백준] 1371: 가장 많은 글자 (feat. EOF) - Swift 노션에서 보기 1371: 가장 많은 글자 🙋‍♀️ 백준 1371번 의 풀이 www.notion.so 문제 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 5000글자로 구성되어 있고, 공백, 알파벳 소문자, 엔터로만 이루어져 있다. 그리고 적어도 하나의 알파벳이 있다. www.acmicpc.net 영어에서는 어떤 글자가 다른 글자보다 많이 쓰인다. 예를 들어, 긴 글에서 약 12.31% 글자는 e이다. 어떤 글이 주어졌을 때, 가장 많이 나온 글자를 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 글의 문장이 주어진다. 글은 최대 5000글자로 구성되어 있고, 공백, 알파벳 소문자, 엔터로만 이루어져 있다. 그리고 적어도 하나의 알파벳이 있다. 출력 첫째 줄에 가장 많이 나온.. 2021. 1. 24.
[LeetCode] #141 Linked List Cycle - Swift 풀이 노션에서 보기 0141 Linked List Cycle LeetCode 141번 Linked List Cycle 문제풀이 www.notion.so 문제 (자세한 워딩은 생략) 요약하자면 Singly Linked로 구성된 List에서 tail이 list 어디론가 다시 연결되는 cycle이 발견되는 경우 true를, 순환 없이 끝나면 false를 리턴하라는 문제이다. 그리고 이제부터 답을 향한 대 서사시를 시작해보도록 하겠다😩 는.. 그 전에 풀이 혹시나 답만 필요한 구글러가 있을 지 모르므로 답 코드 먼저 공개하며 시작. func hasCycle(_ head: ListNode?) -> Bool { if head == nil { return false } var slow = head var fast = he.. 2021. 1. 13.
[LeetCode] #1 Two Sum - Swift 풀이 노션에서 보기 0001 Two Sum LeetCode 1번 Two Sum 문제풀이 www.notion.so 문제 Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order. (예시 생략) 요약하자면 합해서 target이 되는 nums Array의 두 수를 찾고, 그 수들의 index를 찾아.. 2021. 1. 13.