[내일배움캠프 15일차] 3주차 WIL

NH·2025년 3월 21일
0

내일배움캠프_iOS

목록 보기
15/30

📌 Week 3 WIL (Weekly I Learned)

이번 주는 Swift 개발 경험을 쌓으며 팀 프로젝트(숫자 야구 게임)와 알고리즘 문제 해결을 진행했다. 또한 KPT 회고를 통해 팀원들과 문제점을 공유하고 해결 방안을 논의했다.


🔹 4팀 KPT 회고

내일배움캠프 2주차 그리고 3주차에 대한 회고를 팀원들과 작성했다.

📍 Keep (유지할 점)

✅ 코드리뷰를 팀원 진도에 맞춰 유동적으로 진행
✅ 유용한 코드 발견 시 질문하고 공유하는 문화 유지
모르는 개념에 대해 서로 질문하며 학습
끝까지 포기하지 않고 도전하는 태도 유지 🚩
고양이 사진 공유 🐱

📍 Problem (문제점)

GitHub 연동 문제 (PR, Merge 과정에서 충돌 발생)
Swift 내장 함수 활용 미숙
파일 및 디렉토리 구조화 미흡
AI 의존도가 높음

📍 Try (시도할 점)

🔹 튜터님께 적극적으로 질문하여 해결
🔹 다양한 Swift 프로젝트 경험을 쌓으며 익숙해지기
🔹 강의 및 개인 학습을 통한 개념 보완
🔹 AI 사용 시 필요한 예시만 참고하여 의존도 줄이기
🔹 Xcode 자동 완성 기능을 끄고 직접 코드 작성 연습


⚾ 숫자 야구 게임 프로젝트

📌 프로젝트 목표

  • 필수 기능
    • 중복되지 않은 세 자리 숫자 랜덤 생성
    • 사용자 입력을 받아 정답 비교
    • 스트라이크 및 볼 카운트 후 출력
  • 도전 기능
    • 예외 처리 (잘못된 입력 방지)
    • 게임 기록 보기 기능
    • 게임 종료 기능

📌 배운 점

  • 클래스와 인스턴스 개념 심화 학습
  • 추상화를 활용하여 코드 구조 개선
  • 코드 리뷰를 통한 다양한 접근법 학습
  • GitHub을 활용하여 협업 연습
  • Swift의 guard, struct, 배열 활용 능력 향상

🔢 알고리즘 문제 풀이

이번 주에는 가까운 수 찾기 문제를 해결하며 Swift의 정렬과 절댓값 연산을 활용하는 방법을 학습했다.

문제 요약

정수 배열 array와 정수 n이 주어질 때, array에서 n과 가장 가까운 수를 찾는 함수 구현

내가 처음 시도한 방법

var num = array.map { $0 - n } // 배열 요소에서 n을 뺀 값 저장
for index in 0..<num.count {
    if num[index] < 0 {
        num[index] *= -1 // 음수를 양수로 변환
    }
}

👉 문제점: 원래 숫자와의 매칭이 어려워짐

개선된 해결 방법 (정렬 활용)

func solution(_ array: [Int], _ n: Int) -> Int {
    return array.min { abs($0 - n) < abs($1 - n) }!
}

👉 min(by:)를 활용하여 가장 가까운 값 찾기
👉 절댓값(abs)을 사용하여 거리 계산

배운 점

  • sorted(by:), min(by:) 등의 고차 함수 활용법
  • 불필요한 반복문 없이 깔끔한 코드 작성법
  • abs()를 활용한 거리 계산 최적화

✍️ 이번 주 배운점과 느낀점

  • GitHub 활용 능력 향상
  • 클래스와 인스턴스 개념 심화 이해
  • 추상화를 활용하여 코드의 재사용성과 가독성을 높이는 연습
  • Swift 내장 함수를 적극적으로 활용하는 법 학습
  • 알고리즘 문제 해결 능력 향상 (정렬, 고차 함수 활용)

1개의 댓글

comment-user-thumbnail
2025년 3월 21일

배울점 많은 우리 팀장님 2주동안 수고하셨습니다 !~! 다음 과제도 파이팅 합시다 :)

답글 달기

관련 채용 정보