[프로그래머스 LV2] 튜플

Junyoung Park·2022년 6월 18일
0

코딩테스트

목록 보기
465/631
post-thumbnail

1. 문제 설명

튜플

2. 문제 분석

문자열을 다루는 문제. {, ,, } 등 괄호 및 콤마를 통해 구별 가능한 집합을 배열로 만들어 이차원 배열 속에 저장하고, 원소 개수를 기준으로 오름차순 정렬을 하자. 이후 가장 적은 개수의 집합 내에 들어온 순서대로 리스트에 값을 추가.

3. 나의 풀이

import Foundation

func solution(_ s:String) -> [Int] {
    var string = Array(s.map{String($0)})
    string.removeFirst()
    string.removeLast()
    // {} 제거
    var data = [[Int]]()
    
    let brackets = string.split(separator: "{")
    
    for bracket in brackets {
        var element = [Int]()
        var number = ""
        for digit in bracket {
            if Character(digit).isNumber {
                number += String(digit)
            } else {
                if !number.isEmpty {
                    element.append(Int(number)!)
                    number = ""
                }
            }
        }
        data.append(element)
    }
    
    
    var answer = [Int]()
    data.sort(by: {
        $0.count < $1.count
    })
    for element in data {
        for num in element {
            if !answer.contains(num) {
                answer.append(num)
            }
        }
    }
    return answer
}

let answer = solution("{{20,111},{111}}")
print(answer)
profile
JUST DO IT

0개의 댓글