본문 바로가기

swift10

[백준] Swift 2302 극장 좌석 DP 문제 : https://www.acmicpc.net/problem/2302 2302번: 극장 좌석 주어진 조건을 만족하면서 사람들이 좌석에 앉을 수 있는 방법의 가짓수를 출력한다. 방법의 가짓수는 2,000,000,000을 넘지 않는다. (2,000,000,000 < 231-1) www.acmicpc.net 분석 : 처음에는 VIP 좌석만 따로 1로 배열을 받고 1을 기준으로 나눠 배열을 칸만큼 곱하면(한칸씩 이동하는 경우) 되는거 아닌가 ? 생각했다. 하지만 제출 후 틀리고 보니 배열칸만큼은 두사람끼리만 자리를 바꿨을때더라 ㅎ 만약 이러한 배열이 있을때 1,2,3,4 중 두 수 예를 들어 1,2만 자리 바꿨을때 모든 수에 대한 경우의 수는 원소의 개수만큼 4이지만 12가 자리를 바꾸는 사이 34도 자리.. 2022. 4. 17.
[백준] Swift 1309 동물원 DP 문제 : https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 분석 : 처음엔 N은 주어졌는데 사자의 수가 주어지지 않아서 어떻게 푸는건지 당황했었다. 근데 동물 수와 상관없이 모든 경우의 수를 구하는 것이었다. 그래서 동물이 한마리일경우, 2마리일 경우 .. 로 생각해보았는데 규칙을 찾기 쉽지 않았다. 결국 점화식 세우는 것이 도무지 감이 잡히지 않아 다른 블로그를 보고 풀었다 ㅜ 동물의 수가 아닌 문제에 주어진 조건 N을 가지고 나눠 생각해보자 우선 동물원의 N = 1인 경우, N번째 줄에 사자는 없다, 왼쪽, 오른쪽 이 3가지 경우의 수를 지닌다. N=1 -> 3 N = 2인경.. 2022. 4. 16.
[프로그래머스] Swift 카카오 2022 k진수에서 소수 개수 구하기 implementation 문제 : https://programmers.co.kr/learn/courses/30/lessons/92335?language=swift 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 분석 : swift에는 진수 변환을 쉽게 해주는 함수가 있다. 그래서 다른언어보다 간결하게 푼거 같다 Swift 코드 : // // main.swift // SOMA👩🏻‍💻 // // Created by JoSoJeong on 2022/04/15. // import Found.. 2022. 4. 15.
[프로그래머스] Swift 2018 카카오 뉴스 클러스터링 implementation 문제 : https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 난이도 : level 2 분석 : 자카드 유사도를 구하는 문제로, 집합의 교집합, 합집합을 구하는 구현하는 문제였다. 다만 집합이지만 중복된 원소가 존재하는 다중 집합으로 구현해야 해서 Set 타입 대신 Array를 사용했다. Swift 코드 : // // main.swift // SOMA👩🏻‍💻 // // Created by Jo.. 2022. 4. 13.
[백준] Swift 9466 텀 프로젝트 DFS 문제 : https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net 분석 : 학생들이 cycle을 이루는지 파악하기 위해 DFS로 접근해야 한다. 처음에 접근한 방식은 while문을 통해 dfs 탐색을 하고자 했지만 visit를 검사해주지 않아서 시간초과가 났다. 그래서 블로그를 참고해 다시 풀었다 ㅠ 일반적으로 방문한 노드인지 확인을 위해 visit배열을 사용하는데 여기서는 done(팀을 이루었는지 아닌지)도 배열을 하나 새로 만든다. 같이 프로젝트 하고 싶.. 2022. 4. 12.
[Swift] Opaque Type이란 SwiftUI를 보면 body에 some 키워드가 붙은걸 볼 수 있습니다. 이게 뭔지 궁금해져서 찾아보고 정리하고자 합니다 🤔 참고 자료 : https://docs.swift.org/swift-book/LanguageGuide/OpaqueTypes.html Opaque Types — The Swift Programming Language (Swift 5.6) Opaque Types A function or method with an opaque return type hides its return value’s type information. Instead of providing a concrete type as the function’s return type, the return value is desc.. 2022. 4. 12.
[백준] Swift 2529 부등호 backtracking 문제 : https://www.acmicpc.net/problem/2529 2529번: 부등호 두 종류의 부등호 기호 ‘’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시 www.acmicpc.net 분석 : 혼자서 풀지 못했다 .. ㅜ 부등호의 조건을 만족하는 중복 없는 조합을 구하는 문제였다. 그러한 조합들 중 최대 값, 최소 값을 구하는 게 답이였다 ! 우선 부등호 개수 + 1개만큼의 숫자를 사용한다. 조건 만족시 answer 배열에 담는다. 그리고 for 문 0 ~ 9 10개의 숫자에 대해 첫번째 숫자일 경우는 부등호 조건을 체크하지 않고 바로 숫자를 넣는다. 그 다음 index가 1이상일.. 2022. 4. 7.
[백준] Swift 1300 k번째 수 BS(Bineary Search) 문제 : https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 풀이 : 문제를 직접 풀진 못했지만, 신기한 풀이가 있어서 기록을 남겨보려구 한다. 문제는 2차원 N*N 배열 값을 1차원 N*N배열로 바꾸었을때 k번째 인덱스의 값(m)을 구하는 문제였다. 예를 들어서 N = 4 배열이 있을때, 이를 1차원 배열로 늘여보면 이렇게 될 것이고 그러므로 이를 이분 탐색으로 접근 할 수 있는 것이다. 사실 선형 탐색으로 찾으려 .. 2022. 3. 31.
[백준] Swift 2468 안전 영역 BFS 문제 : https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 분석 : 문제의 안전 영역의 정의를 처음엔 이해하기 어려웠다. 그래서 얼만큼의 장마가 내린다구 ? 했는데 모든 장마 경우의 수를 다 검사해 안전 영역이 최대가 될때 안전 영역의 개수를 출력하라는 뜻이었다. bfs를 돌아 visit배열에 false인 영역을 true로 만들고 끝내고 오면 bfsAll 함수에서 하나씩 cnt + 1 하여 안전 영역의 개수를 구해준다. 그 전에 visit 배열을 안전 .. 2022. 3. 11.
[iOS] Codable - Encodable & Decodable 프로토콜 json을 파싱하는 방법 중 하나이다. 다른 하나는 다음 글에서 알아보겠다. (많관부) Codable 이란? -> 자신을 변환하거나 외부 표현(ex> json)으로 변환할수 있는 타입 보통은 json으로 가장 많이 사용된다! 그래서 아래 예시도 json 타입으로 변환하는 방법을 살펴볼 것이다. Encodable과 Decodable을 통틀은 것 typealias는 뭐지 ?? * typealias - 기존 선언된 데이터 타입에 별칭을 사용함으로서 코드를 더 읽기 쉽도록 만드는 문법 예를 들어서 typealias Name: String 이라 했을 때 let name: Name = "홍길동" == let name: String = "홍길동" 기존 타입 String의 별명을 Name으로 했을때 아하 String .. 2021. 5. 31.