인사말

안녕하세요~! 월요일이에요

컨디션 난조로 많이 힘들었던 월요일이었어요

빈혈끼가 많이 돌아서 화면 보기가 어려운 날이었답니다 🥲

그래도 할 수 있는 건 다 했으니, 만족스러워요!

 

다들 몸 따듯하게 하시고, 빈혈 조심하세요~!

오늘도 파이팅입니다 😉

 

오늘의 일정
오전(09:00 ~ 13:00) 09:00~09:30 코드 카타 2문제
09:50~10:00 팀 오전 회의
09:30~12:00 프로그래머스 4문제
12:00~13:00 GitHub에 commit 하기
오후(14:00 ~ 18:00) 14:00~17:00 파이썬 기본 이론 공부_숫자형
17:00~18:00 베이직반 수업
저녁(19:00 ~ 21:00) 19:00~21:00 파이썬 기본 이론 공부_문자열 자료형

요약

  1. 코드 카타 3문제
    1. 문자열로 변환
    2. n번째 원소부터
  2. 프로그래머스 4문제
    1. 잘라서 배열로 저장하기
    2. 공 던지기 https://bmk0703.tistory.com/120
    3. 문자열 계산하기 https://bmk0703.tistory.com/121
    4. 영어가 싫어요
  3. 파이썬 기본 이론 공부
    1. 파이썬 프로그래밍의 기초, 자료형_숫자형 https://bmk0703.tistory.com/122
    2. 파이썬 프로그래밍의 기초, 자료형_문자열 자료형 https://bmk0703.tistory.com/123
  4. 베이직반 수업

오전(09:00 ~ 13:00)

1. 코드 카타 2문제

1.2. 문자열로 변환

def solution(n):
    return str(n)

 

🤔 문제 풀이

  • 아주 간단한 타입 변환 문제였어요
  • 문자열로 변환하고 싶을 때 str()을 쓴다는 걸 다시 확인할 수 있었던 문제였어요

 

1.2. n번째 원소부터

def solution(num_list, n):
    return num_list[n-1::]

 

🤔 문제 풀이

  • 슬라이싱[start:end:step]을 이용해서 푼 문제였어요
  • return num_list[n-1::]
    • 문제를 봤을 때 [2, 1, 6]이었는데 세 번째 원소가 [6]이라고 하더라고요
    • 그래서 파이썬은 자릿수가 0부터 시작하기 때문에 -1을 해주었어요

 

2. 프로그래머스 4문제

2.1. 잘라서 배열로 저장하기

def solution(my_str, n):
    answer = []
    
    for i in range(0, len(my_str), n):
        answer.append(str(my_str[i:i+n]))
        
    return answer

 

🤔 문제 풀이

  • for i in range(0, len(my_str), n):
    • n씩 잘라서 answer에 넣어줄 거기 때문에 step을 n으로 잡았어요
    • 0~len(my_str) 길이만큼을 범위를 잡아줄게요
  • answer.append(str(my_str[i:i+n]))
    • my_str[i:i+n]
      • my_str를 i부터 i+n까지 슬라이싱 해줄게요
        • 이게 저희가 구하고자 하는 결괏값이에요
    • str(my_str[i:i+n])
      • 슬라이싱 한 결괏값을 문자열화 해줘요
        • append 함수를 쓸 거기 때문에 타입 변환했어요
    • answer.append(str(my_str[i:i+n]))
      • answer에 append 해주면 문제 해결!

 

 

제가 생각한 대로 잘 되고 있는지 중간에 print() 함수를 섞어가면서 결괏값을 봤어요

다행히 잘 들어갔더라구요 🤭

 

2.2. 공 던지기

# 인덱스 번호 알아내기 문제
def solution(numbers, k):
    answer = numbers[2*(k-1) % len(numbers)]
        
    return answer

https://bmk0703.tistory.com/120

🤔 문제 풀이

  • answer = numbers[2*(k-1) % len(numbers)]
    • 2칸씩 이동할 거니까 2를 곱해줘요
    • 인덱스는 0번째부터 카운팅을 하기 때문에 k-1을 해주었어요
      • 그리고 k-1이 의미하는 것은 우리가 찾고자 하는 결괏값을 위해서 "공을 던져주는 사람"을 의미해요
    • 2*(k-1)이 numbers의 길이를 넘어갈 수 없기 때문에 나머지(%) 연산자를 써주었어요
    • 2*(k-1)은 공이 움직인 횟수를 뜻하게 되고,
      • 이것을 len(numbers)로 나누어준다면, k번째로 공을 던지는 사람의 번호를 구할 수 있어요

 

2.3. 문자열 계산하기

def solution(my_string):
    return eval(my_string)

https://bmk0703.tistory.com/121

🤔 문제 풀이

  • 파이썬에는 문자열을 그대로 매개변수로 받아서 계산하는 내장 함수가 있어요
    • eval()이라는 함수를 알게 된 문제였어요

 

띠용..????? 😳

 

2.4. 영어가 싫어요

def solution(numbers):
    answer = 0
    eng_num = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4",
               "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}
    
    for i in eng_num.keys():
               numbers = numbers.replace(i,eng_num[i])
               
    return int(numbers)

 

🤔 문제 풀이

  • 문제를 보자마자 딕셔너리를 생각했어요
    • eng_num = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4",
                     "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}
      • 딕셔너리는 key와 value의 형태로 있잖아요? 짝을 지어줬어요
  • for i in eng_num.keys():
                   numbers = numbers.replace(i,eng_num[i])
    • eng_num에 있는 keys를 i에 넣어줄게요
    • 그리고 i에 있는 것을 eng_num[i]의 value 값으로 replace 해줘요
  • return int(numbers)
    • 원하는 결괏값은 int형이기 때문에 형변환 해주고 return 해주면 문제 해결!

오후(14:00 ~ 18:00)

3. 파이썬 기본 이론 공부

3.1. 파이썬 프로그래밍의 기초, 자료형_숫자형 https://bmk0703.tistory.com/122

 

4. 베이직반 수업


저녁(19:00 ~ 21:00)

3. 파이썬 기본 이론 공부

3.2. 파이썬 프로그래밍의 기초, 자료형_문자열 자료형 https://bmk0703.tistory.com/123

→ 슬라이싱까지


마무리

오늘 "공 던지기"라는 문제에 멘탈이 털린 날이었어요

이게,, 쉽지가 않네요,,

알고리즘 문제를 풀어도 풀어도 사고회로가 여기에 알맞게 굴러가질 않아요

튜터님께 힌트를 얻을 수 있어서 다행이었어요 🥲

 

빈혈 때문에 컴퓨터 화면이 잘 안 보이지만,

평소처럼 잘 해낸 제 자신에게 무한한 박수를 치고 싶어요 👏🏻👏🏻

 

오늘도 수고 많으셨어요. 따뜻한 이불속에서 몸을 녹이시며 푹 쉬시길 바라요

감사합니다 :)

+ Recent posts