[Swift] 프로그래머스 N-Queen - DFS
자료구조와 알고리즘/알고리즘2024. 3. 11. 15:04[Swift] 프로그래머스 N-Queen - DFS

https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 가로, 세로 길이가 n인 정사각형으로된 체스판 체스판 위의 n개의 퀸(Queen)이 서로를 공격할 수 없도록 배치 퀸(Queen)은 가로, 세로, 대각선으로 이동 풀이 import Foundation func solution(_ n:Int) -> Int { var ret = 0 // maps를 통해 갈 수 있는 곳을 확인 var maps = Array(repeating: Array(repea..

[Swift] 백준 16173번: 점프왕 쩰리 - BFS
자료구조와 알고리즘/알고리즘2024. 3. 8. 17:16[Swift] 백준 16173번: 점프왕 쩰리 - BFS

https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 조건 ‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다. ‘쩰리’의 출발점은 항상 정사각형의 가장 왼쪽, 가장 위의 칸이다. 다른 출발점에서는 출발하지 않는다. ‘쩰리’가 이동 가능한 방향은 오른쪽과 아래 뿐이다. 위쪽과 왼쪽으로는 이동할 수 없다. ‘쩰리’가 가장 오른쪽, ..

[Swift] [leetcode] Implement strStr ... etc
자료구조와 알고리즘/알고리즘2022. 8. 9. 20:11[Swift] [leetcode] Implement strStr ... etc

문제 Implement strStr() Implement strStr() - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com needle을 찾았다면 찾은 첫 번째 index를 반환, 찾지 못했다면 -1을 반환해야 합니다 class Solution { func strStr(_ haystack: String, _ needle: String) -> Int { if needle.isEmpty { return 0 } if !haystack.contains(needle) {..

[Swift] [leetcode] Palindrome Number ... etc
자료구조와 알고리즘/알고리즘2022. 8. 7. 12:19[Swift] [leetcode] Palindrome Number ... etc

문제 Palindrome Number Palindrome Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Constraints(제약 조건)의 범위의 숫자가 들어오는데, 완벽한 대칭이 되는 숫자의 경우에만 true 값을 반환하면 됩니다. 1. 숫자를 문자열로 변환 2. 문자열의 index값을 이용하여, 앞과 뒤를 비교 3. 2번을 문자열의 사이즈 1/2 까지만 반복문 실행 swift 문자열 index 접근은 c와 같이 접근을 하지 못하고 c++의 반..

[Swift] [프로그래머스 1단계] 키패드 누르기
자료구조와 알고리즘/알고리즘2022. 8. 6. 21:39[Swift] [프로그래머스 1단계] 키패드 누르기

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import Foundation func solution(_ numbers:[Int], _ hand:String) -> String { var ret:String = "" // 키패드를 2차원 배열로 생각하고, 숫자 0의 좌표 var datas:[[Int]] = [[3, 1]] // 키패드 * var leftHand: [Int] = [3, 0] // 키패드 # var rightHand: [Int] = [3, 2] // 키패드 숫자별로 좌표 for i in 1...9 { datas.append([(i - ..

[Swift] [프로그래머스 1단계] 체육복
자료구조와 알고리즘/알고리즘2022. 8. 4. 23:14[Swift] [프로그래머스 1단계] 체육복

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다풀고나서 문제의 유형에 대해 타입을 보니 greedy 였다 처음의 시도는 아무생각없이 Dictionary를 사용하였는데, 우선 문제는 Array에 비용이 높고 optional에 대한 처리도 해줘야 하는 것을 나중에 알았다... 문법에 대해서 익힐 겸 코딩테스트도 할 겸 배워나가는 단계에서 이렇게 무너지고 Array로 다시 풀이를 하였다 import Foundation func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int { var result = ..

알고리즘 Dijkstra 최단경로탐색
자료구조와 알고리즘/자료구조2021. 9. 27. 07:51알고리즘 Dijkstra 최단경로탐색

Dijkstra algorithm(다익스트라 알고르즘) 그래프에서 꼭짓점 간의 최단 경로를 찾는 알고리즘 일반적인 형태로는 한 꼭짓점을 "소스" 꼭짓점으로 고정하고 그래프의 다른 모든 꼭짓점까지의 최단 경로를 찾는다. 원래 알고리즘은 우선순위 큐를 사용하지 않았기 때문에 시간 복잡도 $$O(|V|^2)$$ 우선적으로 구현해볼 것은 일반적인 형태이지만, 음의 간선을 포함할 수 없다. 사진에서 보이는 표 같은 경우는 "노드 1"을 기준 삼아서 연결되어 있는 꼭짓점과 연결을 확인한다. 이 다음 "노드"를 기준삼아서 기존에 값과 비교를 한 뒤에 최소값으로 표기를 하게 되면 된다. 이러한 방법은 모든 꼭짓점을 기준으로 할 때까지 반복이기에 위에서 말한 시간 복잡도를 갖게 된다.

[C언어] graph - 개념편
자료구조와 알고리즘/자료구조2021. 9. 18. 22:15[C언어] graph - 개념편

Graph 연결되어 있는 객체간의 관계를 표현한 자료구조 G(V, E) 그래프에서의 표현으로 V는 정점 혹은 노드라고 불리며, E 노드간의 연결을 해주는 간선으로 나타난다. 그래프의 종류를 나뉘는 것을 보면 간선의 방향치양방향 혹은 한쪽 방향으로만 이동이 가능 간선의 가중치간선마다 비용이나 가중치를 책정 방향 그래프 : G2, G4 와 같은 그래프로 모든 간선은 방향을 가지고 두 정점의 쌍으로 표현 무방향 그래프 : G1, G3 와 같은 그래프로 간선을 표현하는 두 정점의 쌍에 순서가 없다. 방향이 없는 그래프 인접 : 무방향 그래프 G1 에서 간선 (V0, V1)가 노드 V0와 V1은 서로 인접 부속 : 무방향 그래프 G1 에서 간선 (V0, V1)가 간선 (V0, V1)은 정점 V0와 V1의 부속이 ..

image