ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TIL w2d2] 알고리즘 특강 / 야구 게임 만들기 (Lv. 1~3 / 6)
    iOS💖 2025. 3. 11. 21:04

    [오운완] 7am 운동으로 시작!

    12시간 이상을 앉아있는 요즘은 더욱.. 운동이 필수인 듯하다. 

    내배캠 기간에 특별한 밤샘 작업이 없다면, 주 3일은 필수로 정해놨다. 

     

    지난 2년간 매일 새벽기상 & 운동을 해오다보니, 평생을 수면시간에 집착했던 나는 시간에도 자유하게 됐고,

    오히려 내배캠 시작하고 운동할 시간이 없어서 더 일찍 일어나고 있다. (우리아이가 바꼈어요 wow~) 

    내 인생에서 지금이 제일 건강하다.

    내배캠 직전까지 오전 알바 + 운동 + 공부 루틴으로 에너지를 2배로 썼는데, 계속 앉아 있다보니 아직 2주차인데 얼굴이 통통해지고 있다.

    |0.0| ➡️ (ㅇ.ㅇ) 

     

    SNS에 내 사진 업로드 잘 안하지만..

    일주일이 한달같이 느껴지는 정도로 빠르게 가는 이 매일 매일을 기록하기 위해 사진을 올려보기로 했다. (밥도 올려볼까)

    내 운동의 목적은, 정말 건강이다.

    그래서 운동하는게 재밌고 일찍 일어나도 안피곤하다. 

    개인적으로는 스트레칭을 좋아한다. (마디마디 시원하게 찢어주세요~)

    그리고 근력운동은, 허리 & 고관절이 아파서 길게 앉지도 못했던 나를 12시간 앉아도 끄떡 없게 만들어 줬다. 🔥😎🔥

     

    오늘은 사진 올리는 첫 날이니 좀 길게썼다.

    그럼 오늘도 가보즈아~

    오운완!

     

     

     

     

    [알고리즘 코어반 시작] 9am 오늘은 OT!

    [Code KATA]

    • KATA 란, 특정 무술을 실전에서 사용하기 전에 일련의 동작을 훈련하는 카라테의 용어이다.
    • 프로그래밍 언어를 사용해 문제 해결 능력을 기르는 반복 훈련

     

    [Swift 로 문제를 풀자! - 전략]

    1. 시간싸움 해야하는, 공채 🥎
      • Collection 사용하는게, 시간 안에 가능할까?
    2. 따로 링크가 와서, 풀어주세요!
      • 보통 몇 문제 없고, 시간이 충분하다. 
      • 자료구조를 Custom 해서 구현하면 인터뷰에서 할 말이 많다.
      • 어필할 수 있는 포인트가 많을 수록 더 좋지!

     

     

     

     

    [CLI 야구 게임 만들기] 11am Lv 1, 2, 3 구현 

    https://github.com/hortenssiaa/SpartaCamp-iOS/tree/main/BaseBallGame_CLI

     

    SpartaCamp-iOS/BaseBallGame_CLI at main · hortenssiaa/SpartaCamp-iOS

    deep dive ❤️‍🔥 into iOS. Contribute to hortenssiaa/SpartaCamp-iOS development by creating an account on GitHub.

    github.com

     

    [✅ 개발 시 CTA와 ETA 확인 ✅]

    개발은 요구사항과 데드라인을 지키는 것이 굉장히 중요합니다.

    1. 과제의 요구사항이 무엇인지 파악하고, 요구사항별로 상세 기능을 생각해 봅니다.
    2. 레벨별로 ETA를 정해 데드라인을 지켜봅니다.
    3. 필수 구현기능을 충분히 고민해서 구현해보고, 시간이 남을 경우 Lv6까지 확장하여 진행해 봅니다.
    4. 사용하면서 발생할 수 있는 예외사항을 고려해 봅니다.

     

    [Lv1. 요구사항 정리]

    1. 1에서 9까지의 서로 다른 임의의 수 3개를 정하고 맞추는 게임이다.
    2. 정답은 랜덤으로 만듭니다.(1에서 9까지의 서로 다른 임의의 수 3자리)

     

    [Lv2. 요구사항 정리]

    1. 정답을 맞추기 위해 3자리수를 입력하고 힌트를 받습니다
      • (input) : 3자리수
      • (output) : 힌트
        1. 같은 자리에 같은 숫자가 있는 경우 스트라이크, 다른 자리에 숫자가 있는 경우 볼입니다
        2. 만약 올바르지 않은 입력값에 대해서는 오류 문구를 보여주세요
    2. input 값 체크
      1. 세 자리 모두 숫자여야함
      2. 세 자리 모두 다른 숫자여야함
      3. 0 포함 x, 1...9 까지의 숫자여야함

     

    [Lv2. 학습내용]

    • String 배열의 index 사용
    // Srike & Ball Checker
    for i in 0...(answer.count - 1) {
        for j in 0...(input.count - 1) {
            let answerIdx = answer.index(answer.startIndex, offsetBy: i)
            let inputIdx = input.index(input.startIndex, offsetBy: j)
                        
            if i == j {
                if answer[answerIdx] == input[inputIdx] {
                    strike += 1
                }
            } else {
                if answer[answerIdx] == input[inputIdx] {
                    ball += 1
                }
            }
        }
    }

     

     

    [Lv3. 요구사항 정리]

    1. 랜덤 정답을 생성 시, 첫 자리를 제외한 모든 자리수의 범위를 0...9까지로 확장

     

    [받은 코드리뷰 & 개선해볼 점] 

    1. 파일 구조 - 디자인 패턴 고민하여 refactoring
    2. Set 사용하여 중복 제거하도록 수정

     

     

     

     

     

    [알고리즘 특강]  7pm 🤓 궁극적 목표는, 자료구조를 고안해 내는 힘을 기르는 거예요!

     

    [궁극적 목표]
    1️⃣ 자료구조를 고안해 내는 힘!
    2️⃣ 프로그래밍적 사고를 기르는 힘!

    1. 문제 해결을 🔴기술🔴 하고
    2. 적합한 방법이 있으면, 생각하여 선택 & 적용 -> 프로그래밍적 사고 

     

    [자료구조, 직접 구현 할 수 있어야...]

    알고리즘 문제를 풀기 위해, 자료구조가 필요하다.

    Stack, Queue 등은 구현할 수 있어야 한다

    그 안에 Set, Dictionary, Array 등 사용하여.

     

    [새로 배운 것]
    circular queue

    • 사용: 블랙박스
    • 용량이 꽉 차면, 앞에 있는 것을 지운다. 

     

    [손끝으로 하는 학습! ✏️]

    손으로 직접 그리고 쓰면서 하면 효과가 더 뛰어나다는 사실!

    아이패드로 쓰면서 하자

     

     

    [숙제]
    링크드 리스트 구현해보기

     

     

     

     

    [회고 🤔]

    오늘 온보딩 주차 피드백을 받았는데

    피드백 받는게 너무 좋다. 특히 더 발전시키거나 고쳐야 할 점을 피드백 받는게 너무 좋다.

    감사하다. 빠르게 성장하고 싶다. 

    간단한 코드라도 디렉토리 / 파일 분리 분리 분리 시켜보자. 

    댓글

Designed by black7375.