목록Swift/Swift 알고리즘 (32)
HIT해
https://www.acmicpc.net/problem/10773 //// main.swift// bjbj//// Created by 양희태 on 9/9/24.//import Foundationfunc main() { let N = Int(readLine()!)! var stack : [Int] = [] for _ in 0..
https://www.acmicpc.net/problem/18258 BFS를 활용할때 Array.removeFirst를 사용해 큐처럼 사용해도 시간초과가 되지 않길래. 따로 큐를 구현하지 않아도 괜찮은가? 생각이 들어 문제를 풀어보았다. switch문으로 간단하게 구현해보았다. import Foundationfunc main() { let N = Int(readLine()!)! var queue : [Int] = [] for _ in 0.. 그런데 시간초과가 발생했다. 역시 타 언어의 큐가 되지 않는다. 인덱스를 바꿔주는 방식으로 만들어보자import Foundationstruct Queue { private var elements: [Int] = []..
https://www.acmicpc.net/problem/2178 DFS를 사용하면 비용을 한번 더 사용하기에 오답이 나온다.그렇기에 BFS 를 사용하고 방문배열없이 구현해보았다. 그리고 그래프가 아닌 2차원 배열이기에 방향 배열을 만들어주었다. import Foundationfunc main() { let NM = readLine()!.split(separator: " ").map{ Int($0)! } let (X,Y) = (NM[0], NM[1]) var miro : [[Int]] = [] for _ in 0.. Int{ var queue : [[Int]] = [] queue.append([0,0]) ..
https://www.acmicpc.net/problem/2606 import Foundationfunc main() { // 언래핑 guard let V = Int(readLine()!), let N = Int(readLine()!) else { return } var graph = [[Int]](repeating: [], count: V+1) for _ in 0..
https://www.acmicpc.net/problem/2331 문제 접근값들을 배열에 저장하고 저장하는 순간 이미 배열에 들어있는 숫자라면 반복이 생겼다고 판단해내장함수 firstIndex(of)를 활용해 인덱스를 찾아서 출력하기로함. import Foundationfunc main() { let NM = readLine()!.split(separator: " ").map { Int($0)! } let (N,M) = (NM[0] , NM[1]) var result : [Int] = [] func repeatNum(_ num : String) { let xyz = num.map{ Int(String($0))! } var sum ..
https://school.programmers.co.kr/learn/courses/30/lessons/43165?language=swift 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 간단하게 2차원 배열이 아니라 1차원 배열 DFS 문제를 풀어보았다. DFS란? (Depth First Search )시작 정점의 한 방향으로 갈 수 있는 경로가 있는 곳까지 깊이 탐색해 가다가 더 이상 갈 곳이 없게 되면, 가장 마지막에 만났던 갈림길 간선이 있는 정점을 되돌아와서 다른 방향의 정점으로 탐색을 계속 반복하여 결국 모든 정점을 방문하는 순회 방법 자바에서 공..
https://www.acmicpc.net/problem/1260 Swift로 DFS BFS 는 처음 풀어본다. 한번 기본적인 준비물을 알아보자. DFS인접리스트시작 정점방문 배열 BFS인접리스트시작 정점방문 배열큐 DFS의 경우 방문 정점에 속한 하나의 정점의 또 다른 간선들을 다 확인하고 다음 간선을 확인하고BFS의 경우 방문 정점에 속한 모든 정점을 확인하고 연결된 다음 간선으로 이동한다. DFS 코드import Foundationfunc main() { let input = readLine()!.split(separator: " ").map { Int($0)! } let (N, M, V) = (input[0], input[1], input[2]) // 인접 리스트를 담은 그래프 ..
https://school.programmers.co.kr/learn/courses/30/lessons/120906 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr import Foundationfunc solution(_ n: Int) -> Int { var result: [Int] = [] // 숫자를 문자열로 변환한 다음, 각 문자를 Int로 변환하여 배열로 저장 result = String(n).compactMap { Int(String($0)) } // 예제: 각 자리수의 합을 반환하는 것으로 설정 retur..