Where who wants to meet someone

배열 만들기 2 본문

728x90

문제

https://school.programmers.co.kr/learn/courses/30/lessons/181921

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내 답안 / 다른 사람들의 답안

import Foundation

func solution(_ l:Int, _ r:Int) -> [Int] {
    let result = (l...r).filter { $0.description.allSatisfy{ $0 == "0" || $0 == "5" } }

    return result.isEmpty ? [-1] : result
}

- l과 r 사이 범위에서 filter를 통해 각 항목별로 0 또는 5로만 구성되어 있는 요소들만 result에 담고, result가 비어있다면 -1 배열을, 비어있지 않다면 그 배열을 반환하도록 했다.

 

import Foundation

func solution(_ l:Int, _ r:Int) -> [Int] {
    let answer = (l...r).map { $0 }.filter { Set(String($0)).isSubset(of: ["0", "5"]) }
    return answer.isEmpty ? [-1] : answer
}

https://developer.apple.com/documentation/swift/set/issubset(of:)-1d7pp

 

isSubset(of:) | Apple Developer Documentation

Returns a Boolean value that indicates whether this set is a subset of the given set.

developer.apple.com

- 주어진 set의 하위 set인지 확인하는데 사용되는 메서드

- $0을 String으로 캐스팅하고, Set에 넣은 것이 "0"과 "5"의 하위셋인지 확인하는 방식으로 사용한 것 같다.

- isSubset이라는 새로운 메서드를 알 수 있게 되었다. 다만 위의 코드에서 map은 특별한 의미가 없는 것 같아 바로 filter를 사용해도 되지 않을까 싶다.

점수: +4

'프로그래머스 알고리즘 문제 기록 > 코딩 기초 트레이닝' 카테고리의 다른 글

콜라츠 수열 만들기  (0) 2024.01.16
카운트 업  (0) 2024.01.16
수열과 구간 쿼리 4  (0) 2024.01.15
수열과 구간 쿼리 2  (0) 2024.01.12
수열과 구간 쿼리 3  (0) 2024.01.11