프로그래머스 - 문자열 겹쳐쓰기
·
Algorithm/programmers
prefix 란 특정 개수까지의 값을 자를 수 있습니다. - 예를들어 [11.22.33.44.55] 에서 2를 입력하게 된다면 앞에서 2개까지를 자릅니다.dropFirst 란 prefix와 비슷하게 특정 원소(Int로 지정) 이후의 값을 잘라냅니다.- 예를들어 [11.22.33.44.55] 에서 2를 입력하게 된다면 앞에서 2개 이후의 값들을 자릅니다. func solution(_ my_string: String, _ overwrite_string: String, _ s: Int) -> String { // my_string을 인덱스 s에서 나누어 앞부분과 뒷부분으로 분리 let start = my_string.prefix(s) let end = my_string.dropFirst(s +..
Swift - 1463번 1로 만들기
·
Algorithm/Baekjoon
중요한 포인트는 if문으로 구성해야 한다는 것입니다. 모든 경우를 계산해야하기 때문에 else if 를 사용하면 오답이 됩니다. import Foundationlet line = Int(readLine()!)!var arr: [Int] = Array(repeating: Int.max-1, count: line+1)arr[line] = 0for n in stride(from: line, to: 1, by: -1) { arr[n-1] = min(arr[n] + 1, arr[n-1]) if n % 2 == 0 && n % 3 == 0 { arr[n/2] = min(min(arr[n/3], arr[n/2]), arr[n]+1) } if n % 2 == 0 { arr..
Swift - 백준 1764번 듣보잡
·
Algorithm/Baekjoon
Dictionary를 사용하는 것보다 되도록이면 간단한 자료형을 사용하는 것이 효율적일 수 있습니다  Dictionary 시간초과 코드Dictionary로 코드를 구현하였다가 시간초과가 발생하였습니다. Dictionary로 Key 값과 Value 값으로 문제를 해결하려다 보니 불필요한 Value값을 지속적으로 contains를 통해 검사해야 했고 이는 효율적이지 못했습니다.import Foundationlet count = readLine()!.split(separator: " ").map { Int($0)! }var arr: [String] = []var arr2: [String] = []for _ in 1...count[0] { arr.append(readLine()!)}for _ in 1.....
Swift - 백준 1620번
·
Algorithm/Baekjoon
딕셔너리는 Key : Value 로 구성되어 있는 자료형으로 dic.key, dic.value 로 값에 접근할 수 있습니다  [String:String] 타입으로 문제를 해결한다면 좀 더 짧게 문제를 해결할 수 있습니다.import Foundationlet count = readLine()!.split(separator: " ").map { Int($0)! }var dictionary: [String:String] = [:]for i in 1...count[0] { let tmp = readLine()! dictionary[String(i)] = tmp dictionary[tmp] = String(i)}for _ in 1...count[1] { let tmp = readLine()!..
Swift - 1260번 DFS와 BFS
·
Algorithm/Baekjoon
DFS는 깊이 우선 탐색을로 재귀함수를 구현해야하고BFS는 큐를 구현하여 해결해야 합니다.import Foundation// 입력을 받아서 배열을 초기화합니다.let line = readLine()!.split(separator: " ").map { Int($0)! }var arr: [[Int]] = Array(repeating: [], count: line[0] + 1)// 간선 정보를 입력받아 배열에 저장합니다.for _ in 1...line[1] { let values = readLine()!.split(separator: " ").map { Int($0)! } arr[values[0]].append(values[1]) arr[values[1]].append(values[0])}fo..
프로그래머스 - 정사각형으로 만들기
·
Algorithm/programmers
func solution(_ arr:[[Int]]) -> [[Int]] { var newArr = arr let maximum = max(arr.map { $0.count }.max()!, arr.count) for i in 0.. i { while newArr[i].count != maximum { // 행이 열보다 많을 때 newArr[i].append(0) } } else { var tmpArr: [Int] = Array(repeating: 0, count: maximum) newArr.append(tmpArr) } } return ne..
ytw_developer
'Algorithm' 카테고리의 글 목록 (11 Page)