swift (19) 썸네일형 리스트형 [프로그래머스] n^2 배열 자르기 난이도 : Lv 2 분류 : - 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ n:Int, _ left:Int64, _ right:Int64) -> [Int] { let result: [Int] = (Int(left)...Int(right)).map { max($0 / n + 1, $0 % n + 1) } return result } 풀이 1. 어차피 2차원 배열의 행을 잘라서 이어붙인 1차원 배열을 만들기 때문에 애초부터 1차원 배열을 만들어줍니다. 2. n * n 만큼의 배열을 만.. [프로그래머스] 귤 고르기 난이도 : Lv 2 분류 : Greedy 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ k:Int, _ tangerine:[Int]) -> Int { // 딕셔너리를 활용해서 각 귤의 수를 센다. var dict = [Int:Int]() for tan in tangerine { dict[tan] = (dict[tan] ?? 0) + 1 } // 딕셔너리의 값(각 귤의 수)을 내림차순 정렬 // 다른 종류의 귤을 고를 때까지 귤을 더함 var number = 0 var answer = .. [프로그래머스] 행렬의 곱셈 난이도 : Lv 2 분류 : 구현 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] { var answer = Array(repeating: Array(repeating: 0, count: arr2[0].count), count: arr1.count) for i in 0.. [프로그래머스] 괄호 회전하기 난이도 : Lv 2 분류 : 스택 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ s:String) -> Int { let n = s.count let s = Array(s) var answer = 0 for i in 0.. 재귀 호출 ( Recursive Call) 함수가 자기 자신을 호출하는 행위를 재귀 호출이라고 합니다. 때문에 탈출 조건이 주어지지 않으면 무한루프에 빠질 수 있습니다. 재귀 호출은 코드를 간결하게 만들 수 있고, 특정 문제를 해결하는 데 효과적일 수 있습니다. 재귀 호출을 사용할 수 있다면 반복문으로도 표현이 가능합니다. 아래와 같은 형식으로 구현합니다. func recursiveCall() { guard ... else { return } // 탈출 조건 recursiveCall()// 수행 동작 } 아래는 1부터 number 까지의 숫자를 더하는 재귀 함수입니다. 재귀 호출의 동작 방식은 아래와 같이 표현할 수 있습니다. 자세히 봐야 하니 느린 속도로 제작했습니다. 재귀함수는 메모리 상에서 스택처럼 관리가 됩니다. print 는 바로 나오지.. [프로그래머스] 타겟 넘버 난이도 : Lv 2 분류 : 깊이/너비 우선 탐색(DFS/ BFS) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ numbers:[Int], _ target:Int) -> Int { var count = 0 func DFS(_ index: Int, _ sum: Int) { if index == (numbers.count - 1) && sum == target { // 재귀함수 탈출 조건 count += 1 return } guard index + 1 < numbers.count els.. [프로그래머스] 베스트앨범 난이도 : Lv 2 분류 : 해시 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ genres: [String], _ plays: [Int]) -> [Int] { var playCountByGenre = [String: Int]() // 각 장르별로 총 재생 횟수를 저장하는 딕셔너리 var songPlayCountByGenre = [String: [(id: Int, playCount: Int)]]() // 각 장르별로 노래의 고유 번호와 재생 횟수를 저장하는 배열 for i in 0.... [프로그래머스] 위장 난이도 : Lv 2 분류 : 해시 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import Foundation func solution(_ clothes:[[String]]) -> Int { var wearParts = Dictionary() for etc in clothes { // clothes 를 의상의 종류에 맞게 정리한다. if wearParts[etc[1]] == nil { //etc[1]( 의상의 종류 ) 가 비어있다면 새로 만든다. wearParts.updateValue([etc[0]], forKey: etc[1]) } else.. 이전 1 2 3 다음