본문 바로가기
TIL

241130 열공 썰 풀게요 | 클로저 실행 형태, 딕셔너리, HTTP 프로토콜

by 23g 2024. 11. 30.

0. 오늘의 계획 📋

시작 전에 적어보는 오늘의 계획
  • 강의 꼭 듣기 ✅
  • 그동안 공부한 알고리즘 복습하기 ✅
  • 공부 루틴 모두 완료하기 ✅

1. 회고  📝

마무리하며 적어보는 회고
  • 느낀 점: 공부할 때 하나하나 다 적으면서 해서 시간이 많이 걸린다
    이렇게 하는게 맞을까?! 효율적인 방법이 뭘까 고민해봐야겠다!
    그렇다고 한 번 보고 넘어가기엔 나중에 두번 세번 보는게 더 비효율적인거 같기도..!!!
  • 잘한 점 : 내가 밥도 굶으며 6시간 빡공을 하다니
  • 개선 점 : 오늘은 넘나 열공했으니 칭찬만 해주겠어요 다만 장황하게 공부하지 않기 ㅎ
  • 앞으로
    • 효율적인 공부 방법 생각
    • 지금 하는 공부에 집중하기

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

- swift 강의 ✅ 

강의명 : 코드로 UI 짜기

  • 키워드:클로저의 실행문
  • 개요
    • 클로저의 실행문으로 속성 정의하며 만들기


- 1일 1커밋 ✅ 

📜 문제 설명

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.

⌨️ 입출력 예

[1, 2, 3, 3, 3, 4]        3

✏️ 나의 코드

...쩝

 

📚 개선 코드

import Foundation

func solution(_ array: [Int]) -> Int {
    var frequency = [Int: Int]()  // 각 숫자의 빈도를 기록할 딕셔너리
    
    // 각 숫자의 빈도 계산
    for num in array {
        frequency[num, default: 0] += 1
    }
    
    // 가장 높은 빈도 찾기
    let maxFrequency = frequency.values.max() ?? 0
    
    // 가장 많이 나온 값이 여러 개일 경우 -1 반환
    let mostFrequent = frequency.filter { $0.value == maxFrequency }
    
    if mostFrequent.count > 1 {
        return -1
    } else {
        // 최빈값이 하나일 경우 그 값을 반환
        return mostFrequent.keys.first! //✔️
    }
}

마지막 결과를 뽑을 때 어렵고 헷갈렸는데 어렵게 생각할 필요 없이 값이 하나기 때문에 first 뽑으면 뽑힌다~~

 

전에도 딕셔너리를 잘 몰라서 틀린 문제인데
오늘도 딕셔너리를 몰라서 못풀었다..!!!

관련 내용이 잘 정리된 https://babbab2.tistory.com/113 추천!


- cs 공부 ✅ 

질문 : 13. HTTP 프로토콜의 특징과 HTTP/1.1과 HTTP/2의 차이점을 설명해주세요.

 

답변 : https://github.com/23ji/iOS_Interview_Questions


💬

음하하,,, 오늘 좀 찢었다잉