프로그래밍
-
[프로그래머스] 가장 큰 수 / Swift프로그래밍/코딩테스트 2021. 5. 22. 14:02
[문제 보기] 더보기 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예 numbers, return [..
-
[프로그래머스] 프린터 / Swift프로그래밍/코딩테스트 2021. 5. 21. 23:13
https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr [문제 보기] 더보기 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다..
-
[프로그래머스] 소수 찾기 (순열) / Swift프로그래밍/코딩테스트 2021. 5. 21. 00:07
https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr [문제 보기] 더보기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 ..
-
[프로그래머스] 조이스틱 / Swift프로그래밍/코딩테스트 2021. 5. 19. 23:13
https://programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr [문제 보기] 더보기 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽..
-
[프로그래머스] 기능 개발 / Swift프로그래밍/코딩테스트 2021. 5. 17. 16:15
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr [문제 보기] 더보기 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진..
-
그리디- 큰 수의 법칙 / Swift프로그래밍/코딩테스트 2021. 5. 13. 17:04
이것이 취업을 위한 코딩테스트다 p.92 방법1 : 반복문으로 구하기 import Foundation let nmk = readLine()!.split(separator: " ").map { Int($0)! } var list = readLine()!.split(separator: " ").map { Int($0)! } let n = nmk[0], m = nmk[1], k = nmk[2] var passed = 0 var sum = 0 list.sort(by: >) while passed < m { passed += 1 if passed % k == 0 { sum += list[1] } else { sum += list[0] } } print(sum) 방법2 : 수열의 규칙성을 이용하여 실제 갯수를 구해..
-
[실수 분석] 2021 카카오 인턴 3번, 문자열프로그래밍/코딩테스트 2021. 5. 10. 19:45
제목: [실수 분석] 2021 카카오 인턴 3번, 문자열 단순 구현 문제였다. 정확도는 통과가 되었지만, 효율성에서 반타작이 나왔다. 다른 사람 후기를 보아도 비슷하게 푼 것 같아 계속 원인을 찾아보다가 실수한 부분을 찾았다. (2021. 5. 15 수정) 처음에는 split, component 메서드부분이 원인이라고 생각했지만, 다른 분과 이야기를 하면서 이 부분은 메서드 변경할때마다 성능차이가 나는정도의 성능향상이라면 큰 의미가 없는것 같다고 판단되었다. 커서가 100만개의 첫부분과 맨끝부분을 계속 이동하게 될 때 문제를 해결하는 방향으로 해결해야 했던 것 같다.. 즉 세그먼트 트리, 펜윅 트리 + 이진탐색 등으로 커서 위치를 이동하는 부분을 해결해야 했던 것 같다. (2021. 12. 22 수정) ..
-
[RxSwift] Operators (scan, window)프로그래밍/Swift 2021. 4. 16. 23:52
1. scan 직전에 내려보낸 데이터와 현재 stream(위)에 있는 데이터 이렇게 2개 데이터를 특정한 연산을 하고 내려보냄. 예를들면 위의 stream에서 1은 내려보낸 것이 없어 그대로 내려가서 1이되고, 1 다음에 있는 2는 직전에 내려보낸 1과 연산(1+2)하여 3이 되고, 이것을 내려보낸다. reduce와 비슷한 것 같지만 reduce는 한개의 원소만 최종적으로 내려보내는 것이고(다르기도하고 operator reduce가 따로 존재하기도 함) scan은 한개씩 내려보내면서 직전에 내려보낸 것과 상호작용을 함. 사용예시 class MenuListViewModel { // var totalPrice: Observable = Observable.just(10_000) var totalPrice: P..
-
[RxSwift] subscribe, next, error, completed프로그래밍/Swift 2021. 4. 15. 19:06
1. subscribe 여러가지 처리하고 만들어진 Observable 데이터를 받아서 사용할 때 쓰는 키워드. Observable = 나중에 생기는 데이터, subscribe = 나중에 생기는 데이터를 꺼내 쓰는것. subscribe의 return타입은 disposable임. 다른 operator들은 return타입이 전부 stream임(Observable) DisposeBag에 여러 dispose한 것들을 담을 수 있지만 disposeBag.disposed()라는 메서드를 호출 할 수는 없음. 그래서 disposeBag 변수에 새로운 disposBag를 생성하는 것으로 disposed() 를 하게함. subscribe의 반환타입이 disposable이기 때문에, 보통사용할 때 외부의 변수로 생성한 di..
-
[RxSwift] Operators (just, from, map, filter)프로그래밍/Swift 2021. 4. 15. 17:07
1. just : 넣어주면 그대로 한번에 다음번으로 전달 생성 연산자. 빨간색 구슬은 데이터. 아래 화살표는 스트림. 스트림에 세로로 막대기가 있는것은 데이터가 끝남을 의미 (complete) --> disposableBag에서 사라짐. func just1() { Observable.just("Hello") .subscribe(onNext: { s in print(s) // Hello }) .disposed(by: disposeBag) } func just2() { Observable.just([1,2,3]) .subscribe(onNext: { arr in print(arr) // [1,2,3] }) .disposed(by: disposeBag) } func downloadJson1(_ url: Str..