적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

분류 전체보기 568

코테공부 시행착오

문제 출제 유형 가장 많이 출제되는 다섯가지 유형 : DFS/BFS - 문자열 - 단순구현 - 완전탐색 - 해시 + DP, 재귀함수, 다익스트라 ... + 스택, 큐, 그리디 코딩테스트 볼 때 명심할 것 1. 디버깅의 범위를 이분탐색으로 좁히기 문제를 보고 구현 방식을 설계한 후 코드 작성을 해야, 추후 디버깅 시 단계별로 나누어 디버깅의 범위를 좁힐 수 있다. 2. 좁힌 범위를 논리적으로 분석하기 무작정 모든 곳에 print를 찍어보는 것이 아니라, 코드를 논리적으로 분석하고 흐름을 생각해보며 예외처리 누락 등 어디가 잘못되었는지 분석해봐야 한다. 3. 예외 케이스 TC를 직접 만들어 검증하기 주어진 테스트 케이스 말고도, 중복 허용할지 말지, 순서 중요한지 아닌지 등 문제별 각 예외케이스들에 대한 테..

Algorithm/참고 2022.10.27

시간복잡도와 공간복잡도

복잡도란? 알고리즘의 성능을 나타내는 척도 시간복잡도 : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래걸리는지를 의미 공간복잡도 : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 많은 메모리를 차지하는지를 의미 복잡도를 측정함으로써 시간복잡도에서는 알고리즘에 의해 필요한 연산의 횟수를, 공간복잡도에서는 사용되는 메모리의 양을 계산할 수 있다. 일반적으로 복잡도가 낮을수록 좋은 알고리즘이다. 시간 복잡도 시간 복잡도 표현할 때는 빅오 Big-O 표기법을 사용 빅오 표기법이란? : O(N) 연산횟수 N번 반복문 돌리는 경우 O(1) 연산횟수 1 O(N²) 데이터 개수가 N개일 때, 2중 반복문 돌리는 경우 시간제한이 1초인 문제에 대한 시간복잡도 설계 예시 N의 범위 500 인 경우 : O(N³) 알고..

[Swift 알고리즘] Programmers 숫자 짝꿍

△ Level 1 연습문제 숫자 짝꿍 문제 설명 두 정수 X, Y가 공통으로 가지는 정수 k(0 ≤ k ≤ 9) 들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 한다. 짝꿍이 존재하지 않으면 짝꿍은 -1. 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0. 두 정수 X, Y가 주어졌을 때, X, Y의 짝꿍을 return하는 solution 함수를 완성해주세요. 제한사항 - 3 ≤ X, Y의 길이(자릿수) ≤ 3,000,000입니다. - X, Y는 0으로 시작하지 않습니다. - X, Y의 짝꿍은 상당히 큰 정수일 수 있으므로, 문자열로 반환합니다. 입출력 예시 print(solution("3403", "13203")) //330 print(solution("100", "2345")) //-1 pr..

[Swift 알고리즘] Programmers 콜라문제

Level 1 연습문제 ○ 콜라문제 문제 설명 콜라를 받기 위해 마트에 주어야 하는 병 수 a, 빈 병 a개를 가져다 주면 마트가 주는 콜라 병 수 b, 상빈이가 가지고 있는 빈 병의 개수 n이 매개변수로 주어집니다. 상빈이가 받을 수 있는 콜라의 병 수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 1 ≤ b Int { var result = 0 var n = n while n >= a { result += (n/a)*b n = (n/a)*b + n%a } return result } 쓸데없이 37분 걸림 ㅡㅡ 이해하는 데 크게 어렵진 않았지만 마트에서 주는 콜라 병 수 b병 처리하는 게 좀 헷갈려서 시간을 좀 잡아먹었다. 멋진 답안 func solution(_ a:Int, _ ..

[우아콘] 개발자가 아키텍처에 집착하는 이유

아키텍처의 목적 소프트웨어를 쉽게 변경할 수 있는 구조로 설계해 유지보수를 쉽게 하는 것 의존성 소프트웨어 : 도메인(핵심 프로세스) + 인프라스트럭처(도메인을 소프트웨어로 제공하기 위한 DB, API, UI 등) 무수히 많은 의존성으로 연결되어있음. 계층형 아키텍처 : 목적이 같은 코드들을 계층으로 그룹화 (관심사의 분리) 프레젠테이션 계층 (UI) - 도메인 계층 (업무 로직) - 영속성 계층 (데이터 DB, API) 연쇄적 참조 문제 -> 의존성 높아짐 -> 코드 변경이 어려움(참고 하고 있는 모든 곳에 영향), 테스트도 쉽지 않음 특히 도메인 계층의 업무로직이 수시로 UI 와 데이터 변경의 영향을 받는다는 것이 문제. 일반적으로 도메인 로직 보다 UI, 데이터 변경이 더 빈번한데, 이것이 업무 로..

Trend 2022.10.23

관악산 바우사랑암장 하드프리

2022-10-16 (일)슬랩과 페이스 천국 관악산 바우사랑암장에 다녀왔다.날씨가 쨍쨍하다가 하필 오늘만 흐린거야 왜!원래 승연이가 자일 새로 사서 전망대 릿지 멀티 가기로 했는데, 배송이 아직 안와서 하드프리로 급 변경.. 10:30 정부과천청사역 8번출구 집합아침을 안먹어서 김밥을 사가려했는데 김밥 파는 곳은 대부분 1번 출구 쪽에 몰려있었다. 오매김밥이 유명해 보여서 한번 먹어보고 싶었는데 아쉽게 일요일 휴무라 역시 만만한 24시 연중무휴 김밥천국에서 참치김밥으로 대체. 참치김밥 가격은 4500원으로 비싸다. 물가 상승속도가 무섭네요. 하지만 맛은 좋다. 일찍 도착했지만 김밥 사느라 쪼매 지각쓰 ㅎ 지송지송 😅 국가기술표준원출발점에서 시작해도 되는데 우리는 다른 길로 갔더니 원래는 길이 있었다고 ..

운동/클라이밍 2022.10.18

UICollectionView dynamic cell size

collectionView가 로딩될 때, UICollectionViewDelegateFlowLayout 에서 cell의 size를 미리 지정해줘야 되는데, 높이가 고정값이 아닌 변수로 설정을 하고싶었다. cell 내 view 혹은 stackView의 높이가 수치로 명확하게 선언이 되는 것들은 systemLayoutSizeFitting 를 사용하여 간단하게 처리가 가능했다. func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { let cell = self.collectionView(..

[Swift Layout] FlexLayout

FlexLayout 이란? UIStackView를 개선한 Layout 프레임워크로, 사용하기 훨씬 더 간단하고 다양하게 쓰일 수 있으며 수동레이아웃 UIStackView보다 8~12배 빠르고 뛰어난 성능을 제공한다. 레이아웃 프레임워크를 이야기할 때 PinLayout과 함께 많이 비교 및 사용되는데, 정밀한 컨트롤이나 복잡한 애니매이션이 필요하지 않은 상황에서는 FlexLayout이 적합하다고 한다. FlexLayout 장점? - 간단하고 빠르다. - 구문이 간결하고 연결성이 좋다. (concise and chainable) - 믿을 수 없을 정도로 빠르며 수동 레이아웃(manual layout) 보다 훨씬 빠르다 - 소스코드 구조가 훨씬 더 시각적이고 이해하기 쉬워 수정도 용이하다. 설치 cocoaPo..

728x90
반응형