인사말

안녕하세요~! 목요일입니다

내일만 힘내면 드디어 주말이에요!

오늘은 머신러닝 해설강의 3시간을 들었어요!

머신러닝 할 때 데이터 처리를 어떻게 해야 할지를 알게 돼서 좋았어요!

 

대신, 개인공부를 많이 하지 못해서 아쉬웠네요 🥲

전반적으로 집중이 안 됐던 오늘이었습니다.

 

그래도 파이팅이에요! 🔥

 

오늘의 일정
오전(09:00 ~ 13:00) 09:00~10:00 코드 카타 2문제 및 팀 오전 회의
11:00~13:00 프로그래머스 4문제
오후(14:00 ~ 18:00) 14:00~17:00 머신러닝 과제 해설 강의
17:00~18:00 파이썬 기본 이론 공부_자료형
저녁(19:00 ~ 21:00) 19:00~21:00 파이썬 기본 이론 공부_자료형

요약

  1. 코드 카타 2문제
    1. 홀짝 구분하기
    2. 뒤에서 5등까지
  2. 프로그래머스 4문제
    1. 종이 자르기 https://bmk0703.tistory.com/132
    2. 직사각형 넓이 구하기 https://bmk0703.tistory.com/133
    3. 로그인 성공? https://bmk0703.tistory.com/134
    4. 치킨 쿠폰 https://bmk0703.tistory.com/135
  3. 머신러닝 과제 해설 강의
  4. 파이썬 기본 이론 공부
    1. 튜플 자료형 https://bmk0703.tistory.com/136
    2. 딕셔너리 자료형 https://bmk0703.tistory.com/137

오전(09:00 ~ 13:00)

1. 코드 카타 2문제

1.1. 홀짝 구분하기

a = int(input())
# if a % 2 ==0:
#     print(f'{a} is even')
# else:
#     print(f'{a} is odd')
    
print(f'{a} is even' if a%2==0 else f'{a} is odd')

 

🤔 문제 풀이

  • if a%2==0
    • 짝수인 경우를 조건문으로 해줬어요
    • 이 값이 True면 f'{a} is even'이게 출력되도록 했어요
    • 이 값이 False라면 f'{a} is odd'가 출력되도록 했어요
    • 코드를 print()에 넣어주고 돌리면 문제 해결!

 

1.2. 뒤에서 5등까지

def solution(num_list):
    num_list.sort()
    return num_list[0:5]

 

🤔 문제 풀이

  • num_list.sort()
    • 리스트를 정렬해 주었어요
    • 그러면 작은 값부터 큰 값까지 순서대로 정렬돼요
  • return num_list[0:5]
    • 거기에서 슬라이싱으로 5번째까지 잘라주면 문제 해결!

2. 프로그래머스 4문제

2.1. 종이 자르기

def solution(M, N):
    return M*N-1

https://bmk0703.tistory.com/132

🤔 문제 풀이

  • 문제를 이해하려고 한참을 입출력 예를 보고 있었어요
  • 근데 규칙이 보이더라구요
    • 2*2-1=3 , 2*5-1=9, 1*1-1=0 이렇게요
  • return M*N-1
    • 그래서 코드를 완성하면 문제 해결!

 

2.2. 직사각형 넓이 구하기

def solution(dots):
    
    width = max(dots)[0] - min(dots)[0]
    length = max(dots)[1] - min(dots)[1]
    
    return width*length

https://bmk0703.tistory.com/133

🤔 문제 풀이

  • 넓이를 구할 거면 가로*세로이기 때문에 각 x, y값의 가장 큰 값과 가장 작은 값의 거리를 구하면 돼요
  • width = max(dots)[0] - min(dots)[0]
    • dots는 이중 리스트로 돼있어요
    • max 함수를 써서 dots의 가장 큰 값의 x값과 min 함수로 dots의 가장 작은 값의 x값을 빼주면 거리가 나와요
  • length = max(dots)[1] - min(dots)[1]
    • 세로 길이도 똑같이 구해줘요
  • return width*length
    • 가로*세로를 해주면 문제 해결!

얏호~!~! 4점이나 주는 문제였어요!

 

2.3. 로그인 성공?

def solution(id_pw, db):
    for i in db:
        if id_pw[0] in i:           # 아이디가 db에 있는 경우
            if id_pw[1] == i[1]:    # 비밀번호까지 맞을 경우
                return "login"
            else:                   # 비밀번호가 다를 경우
                return "wrong pw"
                       
    return "fail"                   # 아이디, 비밀번호가 db에 없는 경우

https://bmk0703.tistory.com/134

🤔 문제 풀이

  • 기준을 아이디로 뒀어요
  • for i in db:
    • 일단 for문으로 db를 순차적으로 순회할게요
  • if id_pw[0] in i:
    • 만약에 아이디가 i에 있다면
    • if id_pw[1] == i[1]:    # 비밀번호까지 맞을 경우
                      return "login"
                  else:                   # 비밀번호가 다를 경우
                      return "wrong pw"
      • 비밀번호가 동일한지 동일하지 않은지만 판단하면 돼요
  • return "fail"
    • for문 조건 어디에도 해당되지 않으면 return "fail"이 되도록 했어요
    • 실행을 돌리면, 문제 해결!

 

우와아앙 오늘도 역시 점수가 높은 문제들이 많네요!

 

2.4. 치킨 쿠폰

def solution(chicken):
    service = 0
    
    while chicken >= 10:                   # 쿠폰이 10장 이상일 때부터 조건 시작
        service += chicken // 10           # 서비스 시킬 때는 쿠폰 10장 필요
        chicken = chicken % 10 + chicken // 10   #10장 단위로 써서 %, 서비스에서도 쿠폰 발생
        
    return service

https://bmk0703.tistory.com/135

🤔 문제 풀이

  • 문제를 이해하는데 꽤나 시간이 걸렸던 문제였어요
  • service = 0
    • 일단 서비스로 받는 치킨 수를 구하는 게 목표이기 때문에 식별자 이름을 service로 변경해 주었어요
  • while chicken >= 10:
    • 쿠폰이 10장 이상부터 서비스가 발생하니까, 조건을 이렇게 해줄게요
    • service += chicken // 10
      • 서비스는 치킨을 시킨 수에 10을 나눈 몫만큼 발생하게 돼요
      • 잊지 말아야 하는 점은, 서비스를 시켰을 때에도 쿠폰이 생성돼요
    • chicken = chicken % 10 + chicken // 10
      • 치킨 마리당 쿠폰 1장이에요
      • chicken % 10
        • 서비스 치킨을 시켰을 때 10 단위로 소모가 되었고,
      • chicken = chicken % 10 
        • 서비스 치킨을 시키면 생성되는 쿠폰 수까지 더해줘요
    • 이렇게 하면 while문은 완성이 돼요
  • return service
    • 발생하는 쿠폰 수만큼 service에 더하도록 했기 때문에 return service 하면, 문제 해결!

 

오늘의 마지막 문제답게 너무 어려웠어요,,

이해하기가 쉽지 않더라구요,,

저번에 풀었던 머쓱이네 피자 가게 문제가 생각났었던 문제였습니다!


오후(14:00 ~ 18:00), 저녁(19:00~21:00)

3. 머신러닝 과제 해설 강의

 

4. 파이썬 기본 이론 공부

4.1. 튜플 자료형 https://bmk0703.tistory.com/136

4.2. 딕셔너리 자료형 https://bmk0703.tistory.com/137


마무리

a = int(input())
if a % 2 ==0:
    print(f'{a} is even')
else:
    print(f'{a} is odd')
a = int(input())
print(f'{a} is even' if a%2==0 else f'{a} is odd')

 

오늘 코드 카타 때 풀었던 기초 트레이닝 프로그래머스 문제였어요

솔직히 입문 문제에 익숙해져 있었던 저라서 ㅎㅎ,,

기초 트레이닝 문제를 푼다고 하니까 긴장이 되더라구요

그래도!!

문제 보자마자 술술 풀어서 뿌듯했어요 ㅎㅎ

 

곧 입문 문제가 끝나는데, 기초 문제도 잘 풀게 되는 제가 됐으면 좋겠어요 🙏🏻

파이팅!!

 

감사합니다 :)

+ Recent posts