일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- HTML
- 재귀
- C
- Java
- ftz level13
- level13
- 백준
- ftz
- windosws wbcs
- Stack
- 정렬 알고리즘
- 시간복잡도
- 파이썬
- War Game
- web
- PHP
- 파일 시스템
- pwnable.kr
- OSI
- c언어
- 두근두근 자료구조
- 스택
- 암호수학
- SWiFT
- 미로 탐색 알고리즘
- 자료구조
- windosw 문자열
- 큐
- LoB
- System
- Today
- Total
목록Programming (113)
나의 기록, 현진록
코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문제 풀이 swift를 공부하면서 느낀 점은 문자열 처리가 힘들다. String을 배열로 처리하여 생각하자. 1. 배열(문자열)의 크기가 N일 때 1부터 N까지의 글자수로 압축하는 모든 경우를 구해야한다. 2. 현재 문자열과 다음 문자열이 같으면 압축할 수 있는 것이다. 다음 과정을 반복한다. 3. 압축이 가능한 경우 "\(압축한 수)\(압축한 문자열)"을 새로운 문자열에 추가한다. 4. 압축하지 못 했을 경우 "\(압축 못한 문자열)" 그대로 추가하면 ..
https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 문제풀이 큐 첫번째 작업보다 우선순위가 더 높은 작업이 있다 ? 1번부터, 없으면 2번부터 1. 큐에 우선순위가 가장 높은 작업을 맨 앞으로 옮기기 이 때 location(인덱스)도 같이 움직여줘야함(값에 의존 X 위치에 의존 O) 2. 위 작업이 끝나면 맨 앞에 있는 작업을 출력(큐.removeFirst), 인쇄 순서를 나타내는 count += 1 3. locat..
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제풀이 1. 큐의 first의 요소가 100이 될 때까지 증가 2. 큐의 first가 100일 때 같이 배포될 수 있는 작업 갯수 세기 코드 import Foundation print(solution([93, 30, 55],[1, 30, 5])) print(solution([95, 90, 99, 99, 80, 99], [1, 1, 1, 1, 1, 1])..
스위프트 프로그래밍 3판 - 야곰 지음 15.2 필터 필터는 말 그대로 컨테이너 내부의 값을 걸러서 추출하는 역할을 하는 고차함수입니다. 맵과 마찬가지로 새로운 컨테이너에 값을 담아 반환해줍니다. 다만 맵처럼 기존 콘텐츠를 변형하는 것이 아니라, 특정 조건에 맞게 걸러내는 역할을 할 수 있다는 점이 다릅니다. filter 함수의 매개변수로 전달되는 함수의 반환 타입은 Bool입니다. 해당 콘텐츠의 값을 갖고 새로운 컨테이너에 포함될 항목이라고 판단하면 ture를, 포함하지 않으려면 false를 반환해주면 됩니다. let numbers = [0,1,2,3,4,5] let evenNumbers = numbers.filter{(number: Int) -> Bool in return number % 2 == 0..
스위프트 프로그래밍 3판 - 야곰 지음 스위프트는 함수를 일급 객체로 취급합니다. 따라서 함수를 다른 함수의 전달인자로 사용할 수 있습니다. 매개변수로 함수를 갖는 함수를 고차함수라고 부르는데, 스위프트에 유용한 대표적인 고차함수로는 맵 필터 리듀스 등이 있습니다. 이번 장에서는 맵, 필터, 리듀스를 통해 데이터의 연산을 쉽게 실행하는 방법을 알아보겠습니다. 15.1 맵 맵은 자신을 호출할 때 매개변수로 전달된 함수를 실행하여 그 결과를 다시 반환해주는 함수입니다. 스위프트에서 맵은 배열, 딕셔너리, 세트, 옵셔널 등에서 사용할 수 있습니다. 조금 더 정확히 말하자면 스위프트의 Sequence, Collection 프로토콜을 따르는 타입과 옵셔널은 모두 맵을 사용할 수 있습니다. 맵을 사용하면 컨테이너가..
스위프트 프로그래밍 3판 - 야곰 지음 14.2 빠른 종료 빠른 종료의 핵심 키워드는 guard이다. guard 구문은 if 구문과 유사하게 Bool 타입의 값으로 동작하는 기능입니다. guard 뒤에 따라붙는 코드의 실행 결과가 true일 때 코드가 계속 실행됩니다. if 구문과는 다르게 guard 구문은 항상 else 구문이 뒤에 따라와야 합니다. 만약 guard 뒤에 따라오는 Bool 값잉 false라면 else의 블록 내부 코드를 실행하게 되는데, 이때 else 구문의 블록 내부에는 꼭 자신보다 상위의 코드 블록을 종료하는 코드가 들어가게 됩니다. 그래서 특정 조건에 부합하지 않다는 판단이 되면 재빠르게 코드 블록의 실행을 종료할 수 있습니다. 이렇게 현재의 코드 블록을 종료할 때는 return,..
스위프트 프로그래밍 3판 - 야곰 지음 14.1 옵셔널 체이닝 옵셔널 체이닝은 옵셔널에 속해 있는 nil일지도 모르는 프로퍼티, 메서드, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정입니다. 옵셔널에 값이 있다면 프로퍼티, 메서드, 서브스크립트 등을 호출할 수 있고, 옵셔널이 nil이라면 프로퍼티, 메서드, 서브스크립트 등은 nil을 반환합니다. 즉, 옵셔널을 반복 사용하여 옵셔널이 자전거 체인처럼 서로 꼬리를 물고 있는 모양이기 때문에 옵셔널 체이닝이라고 부릅니다. 자전거 체인에서 한 칸이라도 없거나 고장 나면 체인 전체가 동작하지 않듯이 중첩된 옵셔널 중 하나라도 값이 존재하지 않는다면 결과적으로 nil을 반환합니다. 옵셔널 체이닝은 프로퍼티나 메서드 또는 서브스크립트를 호출하고..
GitHub - dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com 20300번 - 서강근육맨 성공출처 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 (추가 시간 없음) 1024 MB 913 341 293 36.809% 문제 로니 콜먼 동영상을 보고 보디빌더가 되기로 결심한 향빈이는 PT 상담을 받으러 서강헬스클럽에 갔다. 향빈이가 서강헬스클럽을 선택한 이유는 PT를 받을 때 사용하는 운동기구를 회원이 선택할 수 있다는 점 때문이다. 하지만, 서강헬스클럽은 항상 사람이 많아서 PT를 한 번 받을 때 운동기구를 최대 두 개까지만 선택할 수..
스위프트 프로그래밍 3판 - 야곰 지음 13.4 값 획득 클로저는 자신이 정의된 위치의 주변 문맥을 통해 상수나 변수를 획득할 수 있습니다. 주변에 정의한 상수나 변수가 더 이상 존재하지 않더라도 값 획득을 통해 해당 상수나 변수의 값을 자신 내부에서 참조하거나 수정할 수 있습니다. 이 이야기를 하는 이유는 클로저가 비동기 작업에 많이 사용되기 때문입니다. 클로저를 통해 비동기 콜백을 작성하는 경우, 현재 상태를 미리 획득해두지 않으면, 실제로 클로저의 기능을 실행하는 순간에는 주변의 상수나 변수가 메모리에 미리 존재하지 않는 경우가 발생합니다. 중첩 함수도 하나의 클로저 형태라고 앞에서 설명했는데, 이 중첩 함수 주변의 변수나 상수를 획득해 놓을 수도 있습니다. 즉, 자신을 포함하는 지역변수나 지역상수..
스위프트 프로그래밍 3판 - 야곰 지음 13.3.1 문맥을 이용한 타입 유추 메서드의 전달인자로 전달하는 클로저는 메서드에서 요구하는 형태로 전달해야 합니다. 즉, 매개변수의 타입이나 개수, 반환 타입 등이 같아야 전달인자로서 전달할 수 있습니다. 이를 다르게 말하면, 전달인자로 전달할 클로즈는 이미 적합한 타입을 준수하고 있다고 유추할 수 있습니다. 문맥에 따라 적절히 타입을 유추하는 것입니다. 그래서 전달인자로 전달하는 클로저를 구현할 때는 매개변수의 타입이나 반환 값의 타입을 굳이 표현해주지 않고 생략하더라도 문제가 없습니다. let names: [String] = ["wizplan", "eric", "hyunjin", "jenny"] //클로저의 매개변수 타입과 반환 타입을 생략하여 표현할 수 있..