오늘의 일정 | |
오전(09:00 ~ 13:00) | 09:00~10:00 코드 카타 3문제 및 팀 오전 회의 10:00~12:00 git 특강 12:00~13:00 git 리뷰 |
오후(14:00 ~ 18:00) | 14:00~16:00 베이직반 수업 16:00~16:30 베이직반 수업 리뷰 16:30~18:00 머신러닝 공부 |
저녁(19:00 ~ 21:00) | 19:00~21:00 머신러닝 공부 |
요약
- 코드 카타
- 피자 나눠먹기(3)
- 짝수 홀수 개수
- 자릿수 더하기
- git 특강
- 협업
- Repository에 팀원 초대하기
- Pull Request(PR) 생성
- 협업
- 베이직반 수업
- map()
- 무명함수(==lambda)
- 재귀함수
- 머신러닝 이론 공부
오전(09:00 ~ 13:00)
1. 코드 카타
1.1. 피자 나눠먹기(3)
def solution(slice, n):
1 < slice < 11
if n % slice != 0:
answer = 1
else:
answer = 0
return answer + n // slice
🤔 문제 풀이방법
- 피자를 잘라 줄 거예요
- if n % slice != 0: answer = 1
- 사람 수(n)에 피자 조각(slice)을 나눴을 때 나머지가 생긴다면 피자 조각이 부족한 거니까 1판을 더 시켜줄게요
- else: answer = 0
- 사람 수(n)에 피자 조각(slice)을 나눴을 때 나머지가 없다면 그대로 갈게요
- return answer + n // slice
- 추가된 피자 판 수(answer)와 사람(n)수에 피자 조각(slice)을 나눈 몫을 리턴해주면 문제 해결!
다른 사람 풀이
def solution(slice, n) :
return (n-1) // slice +1
# 🤔 문제 풀이방법
#올림을 하기 위해서 n에서 1을 빼 주었고 피자의 조각수로 나눈 몫에 +1을 하여 문제 해결!
아니,, 이렇게 간단한 방법이,, 🧐
1.2. 짝수 홀수 개수
def solution(num_list):
answer = [0,0]
for num in num_list:
if num % 2 == 0:
answer[0] += 1
if num % 2 != 0:
answer[1] += 1
return answer
🤔 문제 풀이방법
- answer = [0,0]
- 짝수와 홀수 개수를 받아줄게요
- for num in num_list:
- num_list를 num으로 하나씩 순차적으로 받아줄게요
- if num % 2 == 0: answer[0] += 1
- 만약 num이 2로 나눴을 때 나머지가 없다면 answer의 첫 번째 자리에 +1 해줄게요 (짝수 개수)
- if num % 2 != 0: answer[1] += 1
- 만약 num이 2로 나눴을 때 나머지가 있다면 answer의 두 번째 자리에 +1 해줄게요 (홀수 개수)
- return answer
- 리턴하면, 문제 해결!
1.3. 자릿수 더하기
def solution(n):
answer = []
answer = map(int,str(n))
return sum(answer)
🤔 문제 풀이방법
- answer = []
- n을 담을 걸 리스트화 해줬어요
- answer = map(int,str(n))
- answer 안에는 문자열화 된 n을 각각 int형으로 변환해주며 들어갔어요
- return sum(answer)
- 이제 answer을 sum해주면 문제 해결!
#1트
def solution(n):
answer = []
for i in n: # n이 int형이라서 불가능 ("1234")
answer.append(i)
return sum(answer)
# 결괏값
# TypeError: 'int' object is not iterable
다시 보니까 눈에 보이네요 '.append() 함수 때문에 틀린 건가?' 하는 생각이요,,
왜냐면 리스트에 값을 넣을 때 쓰는 함수잖아요
이걸 해결하는 방법이,,
# 다른 팀원 풀이
def solution(n):
answer = 0
for i in str(n):
answer += int(i)
return answer
이렇게 했으면 1트만에 풀 수 있었던 건데!! ㅠㅠ
그래도 근접하게 첫 시도를 한 거 같아서 기분 좋아요 🤪
#2트
def solution(n):
answer = []
answer = map(int,str(n))
return sum(answer)
int형이 안 됐나..? 라고 해석을 해서
n을 문자형으로 바꾸고 각각의 값을 int화 시켜야겠다는 생각을 했어요
그래서 map 함수를 써서 int화 시키고 반환해주니까 정답이었어요 >_<
# 다른 팀원 풀이
def solution(n):
return sum([int(i) for i in str(n)])
# 🤔 **문제 풀이방법**
# 정수 n을 문자형으로 변환해서 숫자를 하나씩 가져오고, 가져올 때는 정수형으로 변환
# sum() 함수로 정수들 다 합한 값 반환
2. git 특강
2.1. 협업
2.1.1. Repository에 팀원 초대하기
🤔 깃 허브에 들어가셔서 해당 Repository의 Settings에 들어가면 Collaborators가 보일 거예요 눌러주세요
- Git Hub에 접속
- 협업 Repository 생성 및 Settings 클릭
- Collaborators 접속
🤔 밑으로 내려보시면 "Add people" 버튼이 보일 거예요
🤔 거기에서 Git Hub의 이름이거나 full name 혹은 e-mail 주소를 입력하셔서 팀원을 찾아주세요!
이 과정을 완료 하셨으면 해당 팀원분께 메일 또는 Git Hub 알림이 알 겁니다!
같이 공유해서 쓰시면 됩니다 🤗
2.2.2. Pull Request(PR) 생성
🤔 프로젝트로 운영될 Repository에 들어간다면 상단에 Pull requests 버튼이 보일 거예요
🤔 버튼을 눌러 줄게요
🤔 그럼 New Pull request 버튼이 보일 거예요 눌러주세요!
🤔 다음과 같이 변경된 브랜치를 선택해주세요
🤔 그 뒤 PR 설명란에 작업한 내용을 간략히 작성하고 Create Pull Request 버튼을 눌러주세요
➡️ 피드백 받고 싶은 대상을 직접 설정할 수도 있어요!
🤔 Create Pull Request 버튼을 누르면 PR 작성이 끝납니다!
중요해요
- 각자의 브랜치에서 작업해야 해요!!
- Pull Request로 코드 리뷰를 한 후에 병합 해주세요!
- 로컬 브랜치 정리(git branch -d {브랜치 명} 로컬에서 브랜치 삭제) 및 최신 상태 유지(git pull origin main)
요약
Manager | Crew |
Git Hub Repository 생성 | Git Hub 가입한 이메일로 오는 초대 메일 수락 |
Local에서 Repository 생성 | git clone (URL_git) |
git init | ((작업)) |
git remote add origin (URL_git) | git add, git commit |
README.md 생성 | git push origin master |
git add, git commit | |
git push origin master | |
Manage access -> invite a collacorator |
오후(14:00 ~ 18:00)
3. 베이직반 수업
3.1. map()
# map()
numbers_str = ["1", "2", "3", "4", "5"]
obj = list(map(int, numbers_str))
print(obj)
3.2. 무명 함수 (=lambda)
- 아주 간단한 경우에만 사용할 수 있음 (굳이 def로 정의내리고 싶지 않을 때 씀)
- 여러줄 못 만듦 (for, while 못 씀)
- 자동으로 return됨. (== return을 가질 수 없음)
# lamb da 함수 (무명함수)
x, y = map(int, input().split())
print((lambda x, y: x + y)(x, y))
3.3. 재귀 함수
- 나 자신을 호출하는 함수
- 반드시 종료 조건이 있음
- 반드시 표현 방식이 있음
- 예) 팩토리얼 (5!)
# 팩토리얼
def fact(n):
if n == 1:
return 1
return n * fact(n - 1)
print(fact(5))
# 결괏값
# 120
🤔 코드 풀이
- def fact(n):
- 얘 자체를 재귀 함수로 지정할게요
- if n == 1:
- 만약 n이 1일 때 작동하도록 설정했습니다
- return 1 : 종료 조건
- 종료 조건이에요
- 곱하기를 해줄 거기 때문에 0이 되면 안 되겠죠? 그래서 1을 넣었습니다
- return n * fact(n - 1) : 표현 방식
- 이제 팩토리얼 해줄게요
마무리
말로만 듣던 람다 함수를 배웠어요!
원리를 알게 되니까 재밌더라구요 ㅎㅎ
리스트 컴프리헨션도 최근에 배웠었는데 그거랑 구조가 비슷해 보이네요!
이제 점점 아는 게 많아지나 봐요 점점 연관지어서 생각 흐름이 흘러가네요
굉장히 뿌듯합니다 🤭
이렇게 또 일주일이 끝나가네요,,!
금주 동안 고생 많으셨어요 🤗
주말에 푹 쉬시고! 다음주에도 뵈어요~!
'내일배움캠프 TIL' 카테고리의 다른 글
내일배움캠프 본캠프 21일차_코드 카타, 머신러닝 과제 (0) | 2024.12.23 |
---|---|
내일배움캠프 본캠프 19일차_코드 카타, 베이직반 수업 (0) | 2024.12.19 |
내일배움캠프 본캠프 18일차_코드 카타, 프로그래머스, git 특강(브랜치, 머지) (3) | 2024.12.18 |
내일배움캠프 본캠프 17일차_코드 카타, 백준, 머신러닝 특강 (0) | 2024.12.17 |
내일배움캠프 본캠프 16일차_프로그래머스, 특강 3개 (2) | 2024.12.16 |