개발
-
[Swift] 가장 큰 수 코딩테스트 프로그래머스개발/Swift 2022. 1. 17. 18:16
배열을 결국 잘 정렬 하면 되는 문제다. 결국 가장 큰수를 만들기 위해서는 정렬 할때 두숫자의 조합을 비교해 더큰수를 기준으로 정렬하면 되는것이다. 예를 들어 30, 34 를 비교할떄 3034 vs 3430 이렇게 두수를 합쳐서 비교하면 정렬이 완성된다. 단지 “0000” 인경우를 예외로 두면 된다. func solution(_ numbers:[Int]) -> String { var sortedNumbers = numbers.sorted { (num1, num2) -> Bool in return Int("\\(num1)\\(num2)")! > Int("\\(num2)\\(num1)")! } if(sortedNumbers[0]==0){ return "0" } let result = sortedNumbers..
-
[Swift] 이준 우선 순위 큐 프로그래머스 코딩테스트개발/Swift 2022. 1. 13. 14:09
어떻게 풀어야 할지 고민도 없이 문제를 읽고 바로 해결법을 찾았던 문제였다. 들어오는 값은 [”명령어 값”] 이므로 “ “ 을 기준으로 나눠 배열로 바꾼다. 그러면 [”명령어”,”값”] 인 형태가 될것이고 조건문을 통해 명령어가 “I”면 값이 들어있는 배열에 값을 추가하고 그렇지 않으면 삭제이므로 값을 보고 “1” 이면 값이 들어있는 배열을 정렬후 가장 큰값을 제거하고 “1” 이 아니면 작은 값을 제거하면된다. 이후에 값이 들어있는 배열이 비어있는경우 [0,0]을 리턴 값이 있으면 최대 최소값을 리턴해주면 된다. var valueArray = [Int]() for index in 0..
-
[Swift] 다리를 지나는 트럭 프로그래머스 코딩테스트개발/Swift 2022. 1. 9. 17:49
필요한 변수들은 다음과같다. 트럭 대기 배열 다리위에 있는 트럭 배열 경과 시간 남은 시간 배열 다리위에 있는 트럭무게의 합 해결방법 반복문을 하나 만든다 이 반복문은 트럭 대기 배열, 다리위 트럭 배열이 모두 비었을때 반복 중지되고 결과값이 리턴된다. 1시간이 지났으므로 시간 배열값 -1씩 해주고(시간배열 비어있지 않은경우) 배열 맨앞의 값이 0이면 다리를 지났다는 의미 이므로 시간배열, 다리위 배열에서 제거하며, 해당 무게를 현재 다리위 트럭들 무게 에서 빼준다. 대기배열에 트럭이 남아있다면 현재 가용한 무게(다리가 감당할수 있는 무게 - 현재 다리위 트럭들 무게 )와 대기배열 첫번째 값을 비교하여 무게를 감당 할수 있다면 첫번째 트럭을 대기 배열에서 제거한다. 동시에 시간 배열에 다리 길이의 값(방..
-
[Swift] 프린터 프로그래머스 코딩테스트개발/Swift 2022. 1. 6. 16:05
내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 알고 싶습니다. 위의 예에서 C는 1번째로, A는 3번째로 인쇄됩니다. 현재 대기목록에 있는 문서의 중요도가 순서대로 담긴 배열 priorities와 내가 인쇄를 요청한 문서가 현재 대기목록의 어떤 위치에 있는지를 알려주는 location이 매개변수로 주어질 때, 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 return 하도록 solution 함수를 작성해주세요. 제한사항 현재 대기목록에는 1개 이상 100개 이하의 문서가 있습니다. 인쇄 작업의 중요도는 1~9로 표현하며 숫자가 클수록 중요하다는 뜻입니다. location은 0 이상 (현재 대기목록에 있는 작업 수 - 1) 이하의 값을 가지며 대기목록의 가장 앞에 있으면 0, 두 번째에 있으면 1로 표..
-
[Swift] 기능개발 코딩테스트 프로그래머스개발/Swift 2022. 1. 4. 16:50
작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자연수입니다. 배포는 하루에 한 번만 할 수 있으며, 하루의 끝에 이루어진다고 가정합니다. 예를 들어 진도율이 95%인 작업의 개발 속도가 하루에 4%라면 배포는 2일 뒤에 이루어집니다. 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses..
-
[Swift] 베스트앨범 프로그래머스 코딩테스트개발/Swift 2022. 1. 3. 18:41
속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 장르에 속한 곡이 하나라면, 하나의 곡만 선택합니다. 모든 장르는 재생된 횟수가 다릅니다. 우선 문제 해결을 위해 주어진 장르와 재생수를 가지고 dictionary로 만든후에 해당 dictionary를 총 재생수를 기준으로 정렬 장르 내 재생수 에 따른 정렬 (재생수 같으면 고유번호참조) 앞에서 두개 뽑아서 배열에 넣어서 리턴(갯수 1개면 1개만 넣어줌) 우선 주어진값을 가지고 Dictionary를 만든다. 딕셔너리는 이런구조로 만들어 져야한다. ["classic": [2: 150, 0: 500, 3: 800], "po..
-
[Swift] 위장 프로그래머스 코딩테스트개발/Swift 2022. 1. 2. 15:03
우선 주어진 배열을 딕셔너리 타입으로 변환한다. 딕셔너리는 의상의 종류(키) : 의상의 갯수(값) 으로 구성된다. { "headgear" : 2 , "eyewear": 1 } 위 의상들을 조합할수있는 코디의 개수는 5개다. 모자는 총 두개이므로 3가지의 경우가 나온다. 1번 모자를쓰거나 2번 모자를 쓰거나 둘다 안쓸수도있다. 안경은 총 한개이므로 2가지 경우가 나온다. 1번 안경을 쓰거나 안쓸수도있다. 그럼 이 두개를 곱해주면 된다. 3 *2 = 6 그런데 아무거도 안입는 경우는 없다하니 -1 을 해주면 된다. 코드로 바꿔보자. func solution(_ clothes:[[String]]) -> Int { var dict = [String:Int]() var count = 1 // 곱셈을 사용해야하므로..
-
존재하는 프로젝트cocoapod private용으로 배포 하기개발/Swift 2021. 12. 27. 17:33
구글검색후 찾았던 cocoapod 배포 방법과 달리 나는 이미 존재 하는 프로젝트를 cocoapod 으로 배포 하고싶었다. 대부분의 예시에서는 애초에 시작을 프레임워크로 만들어 제공된 템플릿 안에서 구현하였다. 결론 부터 말하자면 이렇게 하는게 맞았다. 삽질하기(기존 프로젝트 기존 깃에서 그냥 올리기) 하지만 좀 복잡하기보다 간단하게 해결하고싶어서 해당 방법을 찾았었다. 존재하는 프로젝트 경로에서 pod spec create POD이름 를 실행한다. 그러면 POD이름.podspec 파일이 생긴다. podspec 을 보면 여러 세팅값들이 있는데 이중에서 내 프로젝트의 git 주소를 넣어준다. s.source = { :git => '깃주소', :tag => s.version.to_s } 변경 후에 pod s..