본문 바로가기
iOS

241122 TIL | 최댓값과 최솟값

by 23g 2024. 11. 22.

0. 회고 및 개선점 📝

  • 느낀 점: 오늘 학습 내용에서 얻은 교훈
  • 잘한 점 : 아침 스터디! 주 3회 7시 50분부터 한시간동안 한다
  • 개선 점 : 어려움을 느껴서 개선하고 싶은 것
  • 앞으로 : 구체적인 시도할 내용
    • 예: "클로저 캡처 리스트에 대해 더 연구 필요"

1. 오늘 배운 내용 📘 (데일리 루틴)

swift 강의

강의명 :

  • 키워드: 배운 내용과 관련된 핵심 키워드
  • 개요: 학습한 내용을 간결하게 정리 (기능 설명, 개념 설명 등)
    • 예: Swift의 클로저 사용법, UIKit의 생명주기

1일 1커밋

📜 문제 설명

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.

⌨️ 입출력 예

"1 2 3 4" "1 4"

✏️ 나의 코드

func solution(_ s:String) -> String {
    var arr = s.split(separator: " ")

    var max = String(arr.max()!)❌String은 숫자의 크기가 아니라 사전의 순서대로 비교하기 때문에 부적절
    var min = String(arr.min()!)
    if Int(max)! < 0 || Int(min)! < 0 { ❌이런 불필요한 과정이 생기고 이마저도 모든 케이스에 대응 안됨,,!
        var result = max + " " + min
        return result
    }else{
        var result = min + " " + max
        return result
    }
}

어려웠던 점
: 문자열을 합치는 법 - 그냥 " "안에 문자열 보간법 \( )으로 넣으면 됨

타입 변환시 옵셔널을 처리해야함

숫자 비교는 Int로,,,

아직 클로저 사용이 익숙치 않아서 자꾸 비효율적이고 복잡한 코드로 풀게됨

앞으로 개선할 점
: 타입 변환 방법 확실히 정리하기

클로저 사용법 연습

 

📚 개선 코드

func solution(_ s: String) -> String {
    let arr = s.split(separator: " ").map { Int($0)! }
    let min = arr.min()!
    let max = arr.max()!
    
    return "\(min) \(max)"
}

세상 쉬움..

split으로 공백 제거 문자열 만들고 map으로 int로!


cs 공부

질문 :

 

답변 :


💬

일주일간 이사하느라 공부를 많이 못했다!

이제 집 정리가 어느정도 되었으니 다시 열공~