-
[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 로 문제를 풀자! - 전략]
- 시간싸움 해야하는, 공채 🥎
- Collection 사용하는게, 시간 안에 가능할까?
- 따로 링크가 와서, 풀어주세요!
- 보통 몇 문제 없고, 시간이 충분하다.
- 자료구조를 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 확인 ✅]
개발은 요구사항과 데드라인을 지키는 것이 굉장히 중요합니다.
- 과제의 요구사항이 무엇인지 파악하고, 요구사항별로 상세 기능을 생각해 봅니다.
- 레벨별로 ETA를 정해 데드라인을 지켜봅니다.
- 필수 구현기능을 충분히 고민해서 구현해보고, 시간이 남을 경우 Lv6까지 확장하여 진행해 봅니다.
- 사용하면서 발생할 수 있는 예외사항을 고려해 봅니다.
[Lv1. 요구사항 정리]
- 1에서 9까지의 서로 다른 임의의 수 3개를 정하고 맞추는 게임이다.
- 정답은 랜덤으로 만듭니다.(1에서 9까지의 서로 다른 임의의 수 3자리)
[Lv2. 요구사항 정리]
- 정답을 맞추기 위해 3자리수를 입력하고 힌트를 받습니다
- (input) : 3자리수
- (output) : 힌트
- 같은 자리에 같은 숫자가 있는 경우 스트라이크, 다른 자리에 숫자가 있는 경우 볼입니다
- 만약 올바르지 않은 입력값에 대해서는 오류 문구를 보여주세요
- input 값 체크
- 세 자리 모두 숫자여야함
- 세 자리 모두 다른 숫자여야함
- 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. 요구사항 정리]
- 랜덤 정답을 생성 시, 첫 자리를 제외한 모든 자리수의 범위를 0...9까지로 확장
[받은 코드리뷰 & 개선해볼 점]
- 파일 구조 - 디자인 패턴 고민하여 refactoring
- Set 사용하여 중복 제거하도록 수정
[알고리즘 특강] 7pm 🤓 궁극적 목표는, 자료구조를 고안해 내는 힘을 기르는 거예요!
[궁극적 목표]
1️⃣ 자료구조를 고안해 내는 힘!
2️⃣ 프로그래밍적 사고를 기르는 힘!- 문제 해결을 🔴기술🔴 하고
- 적합한 방법이 있으면, 생각하여 선택 & 적용 -> 프로그래밍적 사고
[자료구조, 직접 구현 할 수 있어야...]
알고리즘 문제를 풀기 위해, 자료구조가 필요하다.
Stack, Queue 등은 구현할 수 있어야 한다.
그 안에 Set, Dictionary, Array 등 사용하여.
[새로 배운 것]
circular queue- 사용: 블랙박스
- 용량이 꽉 차면, 앞에 있는 것을 지운다.
[손끝으로 하는 학습! ✏️]
손으로 직접 그리고 쓰면서 하면 효과가 더 뛰어나다는 사실!
아이패드로 쓰면서 하자
[숙제]
링크드 리스트 구현해보기[회고 🤔]
오늘 온보딩 주차 피드백을 받았는데
피드백 받는게 너무 좋다. 특히 더 발전시키거나 고쳐야 할 점을 피드백 받는게 너무 좋다.
감사하다. 빠르게 성장하고 싶다.
간단한 코드라도 디렉토리 / 파일 분리 분리 분리 시켜보자.
'iOS💖' 카테고리의 다른 글
[TIL w2d4] Swift CLI 숫자 야구게임 (Feat. 🛠️트러블 슈팅) (0) 2025.03.14 [TIL w2d3] 알고리즘 Swift로 다시시작 / Swift 복습 (Struct) (0) 2025.03.13 [TIL w2d1] Swift 복습 (Tuple, Collection Type, Closure) (0) 2025.03.10 [Project TIL 12일차] 랜덤 컬러 생성 앱 (feat. Clean Code 🎯) (0) 2025.02.20 [사전캠프 TIL 11일차] Codable (w/ CodingKey) (0) 2025.02.17