본문 바로가기

전체 글

(87)
[Algorithm/Swift] 프로그래머스(Lv.1) - [1차] 다트게임 안녕하세요 제인입니다!! 2018 KAKAO BLIND RECRUITMENT 문제로 출제되었던 다트게임 문제를 풀어봤는데요, 프로그래머스 기준 Level1 문제이지만 저는 접근하는데 꽤나 오래걸렸기 때문에.. 어떻게 풀었는지 복기하며 정리해보도록 하겠습니다!! 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의..
[iOS/Architecture] Coordinator Pattern 안녕하세요 제인입니다! 오늘은 참여하고 있는 프로젝트에 도입하게 된 코디네이터 패턴에 대해 정리해보려합니다. 코디네이터를 프로젝트에 적용해보는 것이 처음이라 공부를 하면서 적용하는 과정에 있기 때문에 이번 포스팅에서는 코디네이터 패턴이 무엇인지 알아보는 정도로만 정리하고, 다른 포스팅으로 구체적인 적용기를 들고오도록 하겠습니다!! 이 점 참고해서 읽어주시면 감사하겠습니다 : ) Coordinator Pattern을 도입하게 된 계기 MVVM 아키텍처를 적용해 UI와 비즈니스 로직 코드를 분리해서 코드를 작성하는 과정에서 화면전환은 어디서 해줘야하는거지..? 라는 의문이 들었었는데요, 화면전환이 따지고 보면 UI와 관련된 부분은 아니지만 ViewController가 다음 화면을 present 해주어야하니까..
[Algorithm/Swift] 프로그래머스(Lv.1) - 최대공약수와 최소공배수 안녕하세요 제인입니다!! 오늘은 프로그래머스 문제를 풀다가 알게된 최대공약수, 최소공배수 구하는 방법에 대해 기록해보려고 합니다! 프로그래머스의 최대공약수와 최소공배수 문제는 레벨1의 간단한 문제이지만 최대공약수, 최소공배수를 구하는 공식(?)과 같은 개념을 알고있지 않다면 쉽게 풀 수 없는 문제이기 때문에 다른 문제들에서의 응용에 대비해 정리하고 넘어가려고 합니다!! 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최..
[Algorithm/Swift] BFS(너비 우선 탐색) Swift로 구현해보기 안녕하세요 제인입니다:) 오늘은 저번 알고리즘 포스팅(DFS)에 이어 BFS(너비 우선 탐색)에 대해 정리해보려 합니다! 시작하기 전에, 탐색 알고리즘 중 하나인 BFS를 이해하려면 우선 그래프에 대한 이해부터 필요하니 혹시 그래프에 대해 잘 모르신다면 아래 링크로 걸어둔 이전 포스팅을 참고해주시면 좋을 것 같습니다!! [Algorithm/Swift] DFS(깊이 우선 탐색) Swift로 구현해보기 요즘 라는 책으로 알고리즘 개념들을 하나씩 뿌수고 있는데요, 이 책이 파이썬 언어를 기준으로 설명되어있어서 개념을 학습하고, 예제나 실전 문제들을 Swift언어로 풀이해보는 방식으로 차근 janechoi.tistory.com BFS BFS(Breadth First Search)는 '너비 우선 탐색'이라는 의미..
[Swift] 고차함수 - map, filter, reduce 안녕하세요 제인입니다! 오늘은 Swift의 고차함수 대해 알아보려고 합니다. Swift의 여러가지 고차함수 중 가장 자주 쓰이고, 알고리즘 문제 풀이 시에도 유용하게 사용되는 map, filter, reduce 요 세가지 함수에 대해 정리해보도록 하겠습니다! 고차함수란? 고차함수는 다른함수를 전달인자로 받거나 함수를 결과로 반환하는 함수를 말합니다. (Swift는 함수를 일급 객체로 취급하기 때문에 함수를 다른 함수의 전달인자로 사용하거나 함수를 결과로 반환하는 것이 가능합니다!) 고차함수의 종류로는 map, filter, reduce, forEach, compactMap, flatMap 등이 있습니다. 이 중에서 가장 대표적으로 많이 사용되는 map, filter, reduce에 대해 자세히 알아봅시다..
[Algorithm/Swift] DFS(깊이 우선 탐색) Swift로 구현해보기 요즘 라는 책으로 알고리즘 개념들을 하나씩 뿌수고 있는데요, 이 책이 파이썬 언어를 기준으로 설명되어있어서 개념을 학습하고, 예제나 실전 문제들을 Swift언어로 풀이해보는 방식으로 차근차근 공부해가고 있습니다! 개념을 공부하고 Swift 언어로 바꿔보는 과정을 정리해두면 좋을 것 같아서 하나씩 정리해보려고 합니다! 오늘은 알고리즘에서 가장 중요한 개념들 중 하나인 탐색 알고리즘, 그 중에서도 DFS(깊이 우선 탐색)의 개념을 정리해보고, 책의 간단한 예제를 Swift 언어로 바꿔서 DFS를 구현해보도록 하겠습니다! DFS DFS(Depth-First Search)는 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘입니다. 그렇다면, 그래프는 어떤 구조인지 부터 알아야 ..
[네트워크] 인터넷이란? 본 게시글은 KOCW 이화여자대학교 이미정 교수님의 강의를 듣고 정리한 내용입니다. 게시글에 포함되는 이미지 자료 또한 해당 강의에 포함된 강의 자료입니다. 인터넷이란? 인터넷의 구성요소 인터넷의 가장자리에는 사용자 컴퓨터와 서버가 있는데, 이를 host 혹은 end system이라고 합니다. 네트워크에서 컴퓨터를 컴퓨터라 부르지 않고 host 혹은 end system이라고 부르는 이유는 사용자 컴퓨터에서 application program을 실행하고 있기 때문에, 다시 말하면 애플리케이션을 호스팅하고 있기 때문이며 네트워크의 가장자리(end)에 위치하고 있기 때문입니다. 네트워크의 중앙부에는 라우터 또는 스위치라고 불리는 특수한 장비들이 있습니다. 라우터는 사용자의 메시지가 목적지를 찾아가도록 하는 역..
[iOS] ReactorKit이란? 안녕하세요 제인입니다! 오늘은 최근 진행 중인 프로젝트를 MVVM 구조로 리팩토링을 하며 도입하게된 ReactorKit(리액터킷)에 대해 정리해보려 합니다. 바로 시작할게요!! ReactorKit이란? ReactorKit은 반응 및 단방향 Swift 애플리케이션 아키텍처를 위한 프레임워크입니다. MVVM과 같은 아키텍처에 대해 공부해보신 분들이라면 느끼셨겠지만 아키텍처는 규격화된 형식이 없기 때문에 개발자, 회사마다 쓰는 방식이 정말 다르고 다양합니다. 하지만, ReactorKit은 형식이 존재하기 때문에 MVVM 아키텍처를 프로젝트 내에서 정형화된 방식(같은 템플릿)으로 적용할 수 있다는 장점이 있습니다. 실제로 위와 같이 많은 회사에서 ReactorKit을 사용하고 있다고 합니다! ReactorKit..