목록Swift/알고리즘 (66)
HIT해
https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 동일 난이도의 문제들에 비해 구현해야할 사항이 많을 뿐 문제의 난이도는 이게 맞나 싶었다. 처음에는 O X 구분 없이 빙고가 2개 이상이 있을때 오류라고 판단했는데O...O.OOO이 또한 한번에 나올 수 있는 경우임에도 오류라고 판단해서 틀렸었다. 풀이import Foundationfunc solution(_ board:[String]) -> Int { var map = [[Character]](repeating:[],count:..
https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr N-Queen 문제처럼 끝까지 dx dy 좌표 이동을 끝까지 한뒤에 걸리는 게 있는 지 없는 지 판별을 하는 방식으로 구현하는 문제였다. import Foundationfunc solution(_ board:[String]) -> Int { let dx = [-1,0,1,0] let dy = [0,1,0,-1] // 큐에 이동 횟수도 함께 저장 var queue = [(x: Int, y: Int, count: In..
1. DateFormatter 설정let dateFormatter = DateFormatter()dateFormatter.dateFormat = "yyyy-MM-dd""yyyy" // 4자리 연도 (2024)"yy" // 2자리 연도 (24)// 월"MM" // 2자리 월 (01-12)"M" // 1자리 월 (1-12)// 일"dd" // 2자리 일 (01-31)"d" // 1자리 일 (1-31)// 시간"HH" // 24시간 형식, 2자리 (00-23)"H" // 24시간 형식, 1자리 (0-23)"hh" // 12시간 형식, 2자리 (01-12)"h" // 12시간 형식, 1자리 (1-12)// 분"mm" // 2자리 분 (00-59)"m" // 1자리..
https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 시간을 계산할때 : 을 기준으로 split을 해준뒤 시간에는 60을 곱해서 계산하는 방식을 사용했었는데 DateFormatter()를 사용해서 날짜를 계산하고 싶었다. 처음 풀이import Foundationfunc solution(_ plans:[[String]]) -> [String] { // 가장 최근에 멈춰둔 과제니까 stack // Swift는 사실 상관없음 let dateFormatter = DateFormatter..
import Foundationfunc solution(_ sequence:[Int], _ k:Int) -> [Int] { var left = 0 var right = 0 var sum = sequence[0] var minLength = sequence.count var result : [Int] = [] while right k sum -= sequence[left] left += 1 } } return result}https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 T..
https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제가 백준의 전깃줄과 흡사해서 이 또한 LIS 로 풀어야하는 문제인줄 알았다.https://www.acmicpc.net/problem/2565 원리는 비슷하지만 LIS와 DP 를 사용하지 않고 간단하게 해결 가능한 문제였다. 처음 내가 시도한 코드import Foundationfunc solution(_ targets:[[Int]]) -> Int { var connect = [(Int,Int)]() var dp = [Int](re..
딕셔너리 생성하기var dict = [String:Int]() 딕셔너리 갯수 확인하기dict.countdict.isEmpty 딕셔너리 요소 접근하기print(dict[key]) // Optional(value)print(dict[key,default : 100]) // value or 100 딕셔너리 요소 추가하기1. SubScriptdict[Key] = value2. updateValue(value, forKey: Key)dict.updateValue(100, forKey: Key)// 키가 없다면 추가 후 nil 리턴 딕셔너리 요소 삭제하기1. Subscriptdict[Key] = nil2. removeValue(forKey:)dict.removeValue(forKey: Key)3. removeAll..

https://school.programmers.co.kr/learn/courses/30/lessons/340211?language=swift 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 완전탐색 빡 구현 문제다. 코테랑 비슷한 수준의 구현을 요구해서 집중해서 풀어보았는데. 자료 구조를 얼마나 이해하고 있느냐가 중요했다. 처음에는 한 route의 이동경로를 각각의 배열에 담고 반복문을 통해서 비교를 하려 했지만. 고정된 크기의 route가 주어지는 것이 아니라 임의의 수를 가진 배열을 서로 비교해야한다 생각하니 앞길이 너무 막막했다. var timeStampPostion = [Int : [Strin..