인사말

오늘이 벌써 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 작성하기

요약

  1. 코드 카타 3문제
    1. 이어 붙인 수
    2. flag에 따라 다른 값 반환하기
    3. 길이에 따른 연산
  2. 프로그래머스 4문제
    1. 중복된 문자 제거 https://bmk0703.tistory.com/96
    2. 모스부호(1) https://bmk0703.tistory.com/97
    3. 팩토리얼 https://bmk0703.tistory.com/98
    4. 숨어있는 숫자의 덧셈(2) https://bmk0703.tistory.com/99
  3. 밍글데이
  4. 마크다운 https://bmk0703.tistory.com/100
  5. Github 협업하기 https://bmk0703.tistory.com/101
  6. 베이직반

오전(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 해줄게요
    • 이 모든 걸 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 해주면 문제 해결!

 

 

하,, 8트만에 띄운 파란색 글자를 보니까 너무 힘들어요,, 🙄

기쁜 감정보다는 해방이라는 생각부터 들었던 문제였어요,,

 

 

ㅋㅋ 9점짜리였네

어려웠던 문제였네요


오후(14:00 ~ 18:00)

3. 밍글데이

다 같이 포인트를 걸고 미니 게임도 하고,

캠핑장에 모여서 제출한 사연도 읽어 보니까 행복했어요

이대로 다 좋은 인연들이 이어져 갔으면 좋겠어요

뭉클하더라구요 ㅠㅠ 덕분에 감동도 많이 받아서 마음이 따뜻해진 시간이었어요

 

4. 마크다운

https://bmk0703.tistory.com/100

 

[Markdown] Basic Syntax

본문 출처🔗목차제목 글씨 크기 : #문단 나누기줄 바꾸기볼드체 : **text**, __text__기울림체 : *text*, _text_볼드체&기울림체 : ***text***, ___text___인용문 두 줄 이상인용문 속 인용문인용문 안에 문단 만

bmk0703.tistory.com

 

5. Github 협업하기

https://bmk0703.tistory.com/101

 

[Github] 협업하기 위해서 설정하기

흐름 요약 포크(fork): 다른 사람의 리포지토리를 내 GitHub 계정으로 복사.클론(clone): 내 로컬 컴퓨터로 복사된 리포지토리 가져오기.브랜치(branch): 독립적으로 작업할 수 있도록 브랜치를 생성하

bmk0703.tistory.com

 

 

 


저녁(19:00 ~ 21:00)

6. 베이직반


마무리

오늘 정말 행복하고 즐거웠던 하루였어요

밍글데이를 기념하여 함께 게임도 많이 하고, 캠핑장 맵에서 사연 낭독도 하고, 도란도란 얘기도 나누었거든요

너무 행복한 하루였어요 꿈만 같아요 😽

 

그리고 프로그래머스 4문제 중에서 2문제가 너무 어려워서 2시간이나 걸렸던 날이에요 ㅋㅋㅋㅋ

몸살 기운이 아직 남아있어서 힘들었지만, 할 건 다 한 제 자신에게 무한한 칭찬을 해주고 싶어요 👏🏻

 

2024년도 고생 많으셨어요

2025년에도 잘 부탁드릴게요 💞

 

감사합니다 💝

+ Recent posts