Algorithm & DataStructure(5)
-
[ Array ] String 을 배열로 쪼개라!
본론을 시작하기에 앞서, 알고리즘과 나의 인연에 대해 잠깐 언급해보려고한다. 작년부터 백준 브론즈를 풀다가, readLine() 의 쓰임에 익숙치 않았지만, 풀어 나갔었다. 일목요연한 문법과 문법설명이라기 보단, 내가 생각하고 느꼈던 것에 대한 기록이다. 난 알고리즘 왕초보니까..😅 내 힘으로 해결하지 않고 풀다가 다른 사람들의 풀이를 보곤 했었는데, 그렇기엔 내 일시적 궁금증만 해소될 뿐이지 궁극적인 나의 알고리즘 내성력(?) 에 일절 도움이 되지 않았다. 그래도 작년 말부터는 다시 초심으로 돌아가 프로그래머스 코딩테스트 기초부터 풀고 있는중이다. 절대 다른 이들의 풀이법을 보고 싶지 않았다! 1. 우선, 문제에서 설명하는 것과 요구하는 것을 먼저 파악했다. 2. 그리고 나서 웬만하면, 제한사항을 두는..
2023.08.14 -
[ 정리 중 ..] Split 과 Components
보호되어 있는 글입니다.
2022.05.24 -
[Swift ] 고차함수 시리즈(Higher-order-function) - Reduce
Reduce 정의 결합(combine) 에 가까운 기능. 컨테이너 내부의 콘텐츠를 하나로 합하는 기능을 실행하는 고차함수. 배열이라면 배열의 모든 값을 전달인자로 전달받은 클로저의 연산 결과로 합해준다. Reduce 형태 1. 클로저가 각 요소를 전달받아 연산한 후 값을 다음 클로저 실행을 위해 반환해 컨테이너를 순환하는 형태 (배열의 각 항목들을 재귀적으로 클로저를 적용시켜 하나의 값을 만들어 줌. ) 기본형태 public func reduce(_ initialResult: Result,_ nextPartialResult: (Result, Element) throws -> Result) rethrows -> Result 2. 리듀스 메서드는 컨테이너를 순환하며 클로저가 실행되지만 클로저가 따로 결괏값을..
2022.05.23 -
[ Swift 알고리즘 입문 ] 기본적으로 알아둬야 할 사항들!!
1. String 타입 처리에 신경쓴다. Swift 문자열에서 String 은 일반적인 정수형 인덱스로 첨자접근이 가능한 배열(랜덤 접근 컬렉션) 과 다른 구조인 양방향컬렉션으로 되어있음 String.Index 타입으로 첨자접근 시 그 시간 복잡도는 O(N) 가 됨. 또한 String 타입의 길이를 체크하는 count 프로퍼티의 경우도 그 시간 복잡도는 O(N)이 됨 2.강제 언래핑 활용 스위프트에서 String? 타입과 같은 옵셔널 타입을 강제로 언래핑해 사용 -> ! 강제 언래핑을 통해 코드 양을 줄이고, 시간관리 할 수 있음, 시간적 여유가 된다면 옵셔널 바인딩을 통한 안전한 접근방식을 고려 가능 실무에서는 해당 값이 없을 시 (nil) 런타임 에러를 야기해 지양하는 문법, 알고리즘 문제에서 보통 ..
2022.05.19 -
[ 자료구조 기초] 내가 뒤늦게 자료구조와 알고리즘 공부를 다시 하는 이유..
더보기 시작하게 된 동기.. 그렇다... 나는 iOS 신입 개발자 취업 준비생이다.. 어느 정도 해서는 취업이 안된다..신입에게 어느 정도의 수준을 요하는지 항상 채용공고를 볼 때면,,난감하다.. (사실 거의 신입 수준의 채용 자격 요건이 없다는 게 함정,,기본 3년 이상인듯하다..) 이제는 코딩테스트로 채용하는 케이스들도 많이 생겨나는 것 같다. 나는 귀에 피날정도로 다들 입버릇 처럼 뱉어내는 비전공자다..완전 문과 어문학계열..(영어, 프랑스어..하지만 난 0개국어..) 비스무리한 이과 공학계열도 아니다.. 코딩테스트를 위해서도 공부해야겠지만, 프로그래밍을 시작하고 개발자로서 업을 삼으려면 알고리즘과 자료구조는 필요한 것이라고들 하더라.. ( 물론 이것 없이도 개발 잘하시는 현직자 분들도 많이 계실거..
2022.03.17