인사말
오늘이 벌써 2024년 마지막 날이래요 😱
시간 정말 빨라요,,
그래도 연말에 좋은 기억이 더 많았기 때문에 너무 행복해요 😎
내년의 저의 앞길이 기대가 되고 궁금하네요!
열심히 가꾼 만큼 꽃을 피웠으면 좋겠어요 🥺
오늘도 파이팅입니다!
오늘의 일정 | |
오전(09:00 ~ 13:00) | 09:00~10:00 코드 카타 3문제, 팀 오전 회의 10:00~13:00 프로그래머스 4문제 |
오후(14:00 ~ 18:00) | 14:00~16:00 밍글데이 16:00~17:00 마크다운 17:00~18:00 Github 협업 하기 |
저녁(19:30 ~ 21:00) | 19:00~20:00 베이직반 20:00~21:00 TIL 작성하기 |
요약
- 코드 카타 3문제
- 이어 붙인 수
- flag에 따라 다른 값 반환하기
- 길이에 따른 연산
- 프로그래머스 4문제
- 중복된 문자 제거 https://bmk0703.tistory.com/96
- 모스부호(1) https://bmk0703.tistory.com/97
- 팩토리얼 https://bmk0703.tistory.com/98
- 숨어있는 숫자의 덧셈(2) https://bmk0703.tistory.com/99
- 밍글데이
- 마크다운 https://bmk0703.tistory.com/100
- Github 협업하기 https://bmk0703.tistory.com/101
- 베이직반
오전(09:00 ~ 13:00)
1. 코드 카타 3문제
1.1. 이어 붙인 수
def solution(num_list):
answer = 0
odd = ''
even = ''
for i in range(len(num_list)):
if num_list[i] % 2 ==0:
even += str(num_list[i])
else:
odd += str(num_list[i])
return int(odd) + int(even)
🤔 문제 풀이방법
- odd = '', even = ''
- 홀수와 짝수의 문자열을 만들어 줄게요
- for i in range(len(num_list)):
- num_list의 길이를 범위로 두어 index를 뽑아낼게요
- if num_list[i] % 2 ==0:
- num_list[i]번째 숫자가 2로 나누었을 때 나머지가 0이면 짝수예요
- even += str(num_list[i])
- 그 값을 문자열화 해서 even에 추가해 줄게요
- else: odd += str(num_list[i])
- 그 외에는 홀수일 테니, odd에 문자열로 추가해 줄게요
- return int(odd) + int(even)
- odd와 even을 int화 하여 더한 값을 return 해주면, 문제 해결!
다른 팀원 풀이
def solution(num_list):
odd = ''
even = ''
for i in num_list :
if i % 2 == 0 :
even += str(i)
else :
odd += str(i)
return int(odd) + int(even)
🤔 저처럼 range를 써서 index로 뽑아내지 말고, 그대로를 str형으로 데리고 와서 해도 됐네요!
# join 함수
def solution(num_list):
e = ''.join([str(i) for i in num_list if i % 2 == 0])
o = ''.join([str(i) for i in num_list if i % 2 != 0])
return int(e) + int(o)
🤔 저도 처음에 다 뜯어내서 join으로 풀고 싶었는데, 전혀 모르겠더라구요
근데 이렇게 푸는 거였네요,, 와우,,
1.2. flag에 따라 다른 값 반환하기
def solution(a, b, flag):
answer = 0
if flag == True:
answer = a+b
else:
answer = a-b
return answer
🤔 문제 풀이방법
- if문을 써서 간결하게 해결했어요!
다른 팀원 풀이
def solution(a, b, flag):
return a + b if flag else a - b
🤔 삼항 연산자라고 하더라구요
if가 true이면 왼쪽의 값을 반환하구요, false이면 오른쪽 조건을 반환하는 원리라고 해요
1.3. 길이에 따른 연산
def solution(num_list):
answer = 0
if len(num_list) >= 11:
answer = sum(num_list)
else:
answer = 1
for i in num_list:
answer *= i
return answer
🤔 문제 풀이방법
- if len(num_list) >= 11:
answer = sum(num_list)- 만약 num_list의 길이가 11 이상이면 answer은 sum을 해줄게요
- else:
answer = 1
- 길이가 11 이상이 아니라면, 곱하기를 해줘야 하니까 answer은 1부터 시작할게요
- for i in num_list:
answer *= i- num_list의 숫자를 하나씩 i에 배치하고, answer에 넣을 때는 *=를 써서 넣어줄게요
- return 하면 문제 해결!
2. 프로그래머스 4문제
2.1. 중복된 문자 제거
https://bmk0703.tistory.com/96
def solution(my_string):
answer = ''
answer = ''.join(dict.fromkeys(my_string))
return answer
🤔 문제 풀이
- answer = ''.join(dict.fromkeys(my_string))
- 함수 dict.fromkeys()는 딕셔너리에서 key들을 만들 때 쓰는 함수예요
- 딕셔너리에서 key는 중복이 불가능하다는 점을 활용해서 문제를 풀었어요
- 중복된 문자를 제거할 때 자주 쓰이는 함수라고 하더라구요!
2.2. 모스부호(1)
https://bmk0703.tistory.com/97
def solution(letter):
answer = []
morse = {
'.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
'--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
'--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
'...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
'-.--':'y','--..':'z'}
letter = letter.split()
for i in letter:
answer.append(morse[i])
return ''.join(answer)
🤔 문제 풀이
- letter = letter.split()
- 문제를 보자마자 "split() 해야겠다".라는 생각을 했어요
- 왜냐면 "letter의 모스부호는 공백으로 나누어져 있습니다"를 봤거든요
- for i in letter:
- 그리고 한 글자씩 돌아가면서 봐야 하니까 for문을 사용했어요
- answer.append(morse[i])
- morse는 딕셔너리 형태로 기입돼 있어요
- 그렇다면 for문에서 만들어준 i는 morse의 key 역할이 되는 거예요
- 딕셔너리에서 key을 입력해 주면 value값이 출력되기 때문에 그 값을 answer에 append 해주었어요
- 🔥append를 쓸 때, answer이 answer = '' 이 형태면 추가 안 돼요. answer = []로 변경해 주셔야 추가 가능합니다.
- return ''.join(answer)
- answer에는 ""이 형태로 들어가져 있을 거예요
- 그래서 join을 써서, 결괏값과 동일하게 만들어주면 문제 해결!
2.3. 팩토리얼
https://bmk0703.tistory.com/98
def solution(n):
answer = []
fac = 1 # 곱해줘야 하니까 1부터 시작
for i in range(1,11): # 최대 팩토리얼은 10
fac *= i # 팩토리얼 코드
if fac <= n: # 10! 값보다 작아야 함
answer.append(i)
return answer[-1] # 리스트에 들어간 끝 숫자만 출력
와,, 6점이나 주는 문제였네요 🙄
어쩐지,, 너무 힘들더라,, 하,,
2.4. 숨어있는 숫자의 덧셈(2)
def solution(my_string):
answer = ''.join(i if i.isdigit() else ' ' for i in my_string)
# my_string에서 isdigit() 함수를 통해, 숫자를 ''에 기입
# 숫자가 아닐 경우 공백으로 ''에 기입
return sum(int(i) for i in answer.split())
# 공백으로 나눈 answer를 split()으로 구분하여 숫자를 sum
# i는 ''문자열화이기 때문에 int로 변환
https://bmk0703.tistory.com/99
🤔 문제 풀이
- answer = ''.join(i if i.isdigit() else ' ' for i in my_string)
- ''.join() 함수를 써서, ()에 바로 조건을 적어주었어요
- 뒤에서부터 해석할게요
- for i in my_string
- my_string을 i로 돌릴 겁니다.
- if i.isdigit()
- 만약 i가 숫자라면 i값 그대로 join 해줄 거예요
- else ' '
- 아니라면 '' 공백으로 join 해줄게요
- for i in my_string
- 이 모든 걸 answer에 담아냈어요
- return sum(int(i) for i in answer.split())
- 궁극적인 목표는 문자열에 있는 숫자들의 합이었어요
- 그래서 return으로 sum을 해줄 거예요
- for i in answer.split()
- 아까 my_string을 숫자인 값을 answer에 join 해주고, 문자면 ''공백으로 기입했죠?
- answer을 공백으로(.split) 구분한 것을 i에 넣어줄게요
- sum(int(i))
- 그 i를 int형으로 변환하여 sum 해주면 문제 해결!
- for i in answer.split()
하,, 8트만에 띄운 파란색 글자를 보니까 너무 힘들어요,, 🙄
기쁜 감정보다는 해방이라는 생각부터 들었던 문제였어요,,
ㅋㅋ 9점짜리였네
어려웠던 문제였네요
오후(14:00 ~ 18:00)
3. 밍글데이
다 같이 포인트를 걸고 미니 게임도 하고,
캠핑장에 모여서 제출한 사연도 읽어 보니까 행복했어요
이대로 다 좋은 인연들이 이어져 갔으면 좋겠어요
뭉클하더라구요 ㅠㅠ 덕분에 감동도 많이 받아서 마음이 따뜻해진 시간이었어요
4. 마크다운
https://bmk0703.tistory.com/100
5. Github 협업하기
https://bmk0703.tistory.com/101
저녁(19:00 ~ 21:00)
6. 베이직반
마무리
오늘 정말 행복하고 즐거웠던 하루였어요
밍글데이를 기념하여 함께 게임도 많이 하고, 캠핑장 맵에서 사연 낭독도 하고, 도란도란 얘기도 나누었거든요
너무 행복한 하루였어요 꿈만 같아요 😽
그리고 프로그래머스 4문제 중에서 2문제가 너무 어려워서 2시간이나 걸렸던 날이에요 ㅋㅋㅋㅋ
몸살 기운이 아직 남아있어서 힘들었지만, 할 건 다 한 제 자신에게 무한한 칭찬을 해주고 싶어요 👏🏻
2024년도 고생 많으셨어요
2025년에도 잘 부탁드릴게요 💞
감사합니다 💝
'내일배움캠프 TIL' 카테고리의 다른 글
[TIL] 내일배움캠프 본캠프 28일차_코드 카타, 프로그래머스, 파이썬 기본 이론 공부, 장고 강의 (1) | 2025.01.03 |
---|---|
[TIL] 내일배움캠프 본캠프 27일차_코드 카타, 프로그래머스, 파이썬 기본 이론 공부 (2) | 2025.01.02 |
[TIL] 내일배움캠프 본캠프 25일차_코드 카타, 비지도학습, 프로그래머스 (0) | 2024.12.30 |
[TIL] 내일배움캠프 본캠프 24일차_코드 카타, 프로그래머스, 머신러닝(지도학습 끝) (2) | 2024.12.27 |
[TIL] 내일배움캠프 본캠프 23일차_코드 카타, 프로그래머스 4문제, 머신러닝_지도학습 (1) | 2024.12.26 |