목록Swift/알고리즘 (66)
HIT해

https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 첫 풀이photo에 담긴 배열 수만큼 result 에 합산한 값을 담아주었다. 이떄 photo에 있는 이름을 name 배열에서 firstIndex(of: 검색할값)으로 인덱스를 찾고 그리움 점수 배열에 해당 인덱스를 넣어 점수를 합산했다. func solution(_ name:[String], _ yearning:[Int], _ photo:[[String]]) -> [Int] { var result : [Int] = [] ..

https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr goal 배열을 두번 순회하면서 일치하는지 확인하고 최초 접근 인덱스 위치를 변경해 알아보려했다. 코드import Foundationfunc solution(_ cards1:[String], _ cards2:[String], _ goal:[String]) -> String { // goal을 두번 순회하면서 인덱스위치를 저장하고 그 후에 다음 요소가 존재하고 안하고를 판별해보자. var index = 0 var coun..

https://school.programmers.co.kr/learn/courses/30/lessons/120809?language=swift 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr import Foundationfunc solution(_ numbers:[Int]) -> [Int] { var answers : [Int] = [] answers = numbers.map{ $0 * 2 } return answers}
1. 기본 수학 연산산술 연산// 기본 연산자let sum = 5 + 3 // 8let difference = 10 - 4 // 6let product = 6 * 7 // 42let quotient = 20 / 4 // 5let remainder = 22 % 5 // 2// 복합 할당 연산자var number = 5number += 3 // number = 8number *= 2 // number = 16고급 수학 함수import Foundation// 거듭제곱과 제곱근let power = pow(2.0, 3.0) // 8.0 (2의 3승)let squareRoot = sqrt(16.0) // 4.0let cubeRoot = cbrt(27.0) // 3.0 (세제곱근)// 절..
1. 기본 변환Character 배열 ↔ String// Character 배열을 String으로 변환var charArray: [Character] = ["H", "e", "l", "l", "o"]let string = String(charArray) // "Hello"// String을 Character 배열로 변환let str = "Hello"let charArray2 = Array(str) // ["H", "e", "l", "l", "o"] String 배열 조작// String 배열을 하나의 문자열로 결합var strArray: [String] = ["Hello", "World"]let joined = strArray.joined() // "HelloWorld"let joinedWithSp..
https://www.acmicpc.net/problem/11053 시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초256 MB180026726434822238.244%문제수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000)출력첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 기본적인 LIS 문제다.LIS 는 dp 누..
https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다.항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항모든 공항은 알파벳 대문자 3글자로 이루어집니다.주어진 공항 수는 3개 이상 10,000개 이하입니다.tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권..
https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 바로 이전에 포스팅한 MST를 활용해 해결하는 문제다. 가중치가 나오고 그래프 문제라고 한다면 무조건 MST로 풀면 된다고 생각하자. 준비물1. 부모배열 ( 자기 자신을 담은 )2. find ( 부모찾기 함수 , 갱신도 해줘야함 )3. union ( 서로 다른 부모를 같은 부모로 갱신 )4. 가중치를 기준으로 오름차순 정렬5. 순환이 없어야함 ( union 함수로 해결 ) 풀이import Foundationfunc solution(_ n: In..