본문 바로가기

Swift

(50)
[Swift] 프로퍼티(Properties) - 저장 프로퍼티, 연산 프로퍼티 안녕하세요 제인입니다 :) 지난 게시글에서 지연 저장 프로퍼티에 대해 정리해보았는데요, 시작한 김에 프로퍼티에 대해서 쭉 정리를 해보려고 합니다. 프로퍼티는 크게 저장 프로퍼티, 연산 프로퍼티, 타입 프로퍼티 이렇게 세 가지로 나눌 수 있는데요, 이번 게시글에서는 저장 프로퍼티와 연산 프로퍼티에 대해 정리하도록 하겠습니다! 프로퍼티 (Properties) 저장 프로퍼티, 연산 프로퍼티, 타입 프로퍼티에 대해 알아보려면 먼저 프로퍼티가 무엇인지부터 알아야겠죠?? property는 재산, 속성 정도로 번역할 수 있는데요, Swift에서의 프로퍼티는 클래스, 구조체, 열거형 등에 관련된 값을 뜻합니다. 저장 프로퍼티 (Stored Properties) 저장 프로퍼티는 단순히 값을 저장하고 있는 프로퍼티 입니다..
[Algorithm/Swift] 프로그래머스(Lv.3) - 기지국 설치 안녕하세요 제인입니다:) 꽤나 오랜만이죠..? 인간이 왤케 게으를까요 오랜만에 티스토리를 들어왔더니 피드에 새 글이 엄청 많네요.. 다들 꾸준한 기록 대단해..본받겠습니다.. 덕분에 저도 자극받고 다시 열심히 티스토리 글을 열심히 쪄보려고 합니다!!!! 오늘은 PS 기록을 남겨보려고 하는데 갑자기 Lv3..? 티스토리에 풀이기록은 안했지만.. 머 풀다보니 레벨3까지 왔네요? 레벨3 문제를 풀다보니 확실히 특정 알고리즘을 사용해야하거나, 효율성까지 고려해야하는 문제가 많아서 기록의 필요성을 느꼈습니다. 그래서 앞으로 문제 풀이과정에서 새로 알게 되는 좋은 접근 방법이나 풀이 방법들을 글로 남겨보려고 합니다! 저의 PS 효율성을 위해 문제에 대한 설명은 생략하고 접근 및 풀이 위주로 기록해나가도록 할게요🙃🙂..
[Swift] lazy 키워드 안녕하세요 제인입니다 :) 요즘은 새로운 것들을 공부하기 보다 부족한 것들을 꼼꼼하게 채워보자는 생각으로 그동안 정확히 모르고 넘어갔던 구멍난 부분들을 채워보려고 노력하고 있는데요! 그러다보니 Swift, iOS 기본기를 더 탄탄히, 자세하게 공부해야겠다는 생각이 들더라구요..(사실 기본지식이 제일 중요하니까요) 그래서 생각날 때마다 정리하는 것들을 티스토리에도 기록해보려고 합니다. 오늘은 lazy 키워드, 지연 저장 프로퍼티에 대해서 정리해보려고 하는데요, lazy 키워드를 왜 사용하는지에 초점을 맞춰서 정리해보도록 하겠습니다! Lazy Stored Properties (지연 저장 프로퍼티) The Swift Language Guide에 따르면, 지연 저장 프로퍼티는 다음과 같습니다. 지연 저장 프로퍼..
[Algorithm/Swift] 이진 탐색(Binary Search) 안녕하세요 제인입니다 :) 오늘은 탐색 알고리즘 중 이진 탐색(Binary Search)이 무엇인지 알아보고 Swift 코드로 구현까지 해보려고 합니다. 이진 탐색 알고리즘의 경우 탐색의 범위가 아주 큰 상황에서 속도를 내서 탐색할 수 있는 방법이니 잘 정리해두면 유용하게 사용할 수 있을 것 같습니다. 바로 시작해볼게요! 이진 탐색이란? 먼저, 이진 탐색이 왜 필요할까요?? 리스트 내에서 원하는 데이터를 찾기 위해 가장 기본적인 탐색 방법인 순차 탐색 방법과 비교하며 이진 탐색을 사용해야 하는 이유에 대해 알아봅시다. 순차 탐색 순차 탐색이란 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법입니다. 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용하게..
[Algorithm/Swift] 프로그래머스(Lv.2) - 무인도 여행 안녕하세요 제인입니다! 프로그래머스에 최근 추가된 연습문제 중 하나인 무인도 여행이라는 문제를 풀어보았는데요, 문제 해결 아이디어를 코드로 구현하는 것이 꽤나 어려웠던 문제이기도 하고, Swift 풀이가 아직 없는 것 같아서 한 번 정리해보려고 합니다! 무인도에 왜 굳이 여행을 가는지는 모르겠지만 암튼 시작해볼게요..ㅎ 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 메리는 여름을 맞아 무인도로 여행을 가기 위해 지도를 보고 있습니다. 지도에는 바다와 무인도들에 대한 정보가 표시돼 있습니다. 지도는 1 x 1크기의 사각형들로 이루어진 ..
[Algorithm/Swift] 동적 계획법(Dynamic Programming) 안녕하세요 제인입니다! 오늘은 알고리즘 개념 중 동적 계획법(Dynamic Programming)에 대해 정리해보려고 합니다. 동적 계획법이 무엇인지 정리해보고, 동적 계획법의 대표적인 예제인 문제를 통해 적용까지 해보도록 할게요! 동적 계획법(Dynamic Programming, DP) 다이나믹 프로그래밍(줄여서 DP)라고도 불리는 동적 계획법은 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법입니다. 동적 계획법에서는 메모이제이션(Memoization) 기법이 핵심이라고 할 수 있는데요! 메모이제이션 기법이란, 한 번 구한 결과를 메모리 공간에 저장해두고 같은 식을 다시 호출해 저장한 결과를 그대로 가져오는 기법을 의미합니다. 메모이제이션은 값을 저장하는..
[Swift] enumerated() 안녕하세요 제인입니다! 오늘은 enumerated()에 대해 정리해보려고 하는데요, 알고리즘 문제를 풀다 다른 풀이를 참고해보면 enumerated()를 사용해 더 깔끔하게 처리한 풀이가 많아서 enumerated() 함수가 무엇인지, 그리고 어떻게 활용하는지까지 한번 정리해보려고 합니다! 제대로 정리해두고 잘 써먹어봅시다! enumerated() enumerate는 사전적으로 열거하다, 세다 라는 의미를 가지는데요, Swift에서는 어떤 의미로 사용되는지 먼저 공식 문서를 통해 enumerated()의 정의부터 살펴보겠습니다! (n, x)로 이루어진 쌍의 시퀀스를 반환합니다. 여기서 n은 0부터 시작하는 연속적인 정수를 나타내고 x는 시퀀스의 요소를 나타냅니다. 정도로 해석할 수 있을 것 같은데요, 요..
[Algorithm/Swift] 프로그래머스(Lv.1) - [1차] 다트게임 안녕하세요 제인입니다!! 2018 KAKAO BLIND RECRUITMENT 문제로 출제되었던 다트게임 문제를 풀어봤는데요, 프로그래머스 기준 Level1 문제이지만 저는 접근하는데 꽤나 오래걸렸기 때문에.. 어떻게 풀었는지 복기하며 정리해보도록 하겠습니다!! 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의..