인사말

크리스마스는 잘 보내고 오셨나요!

저는 하루종일 애니 보고, 밥 먹고, 숙취에 골골댄 하루였어요

갑자기 달달구리한 블루베리 롤 케이크가 먹고 싶네요 😝

 

메리 크리스마스였습니다 여러분~!

오늘도 파이팅입니다!

 

오늘의 일정
오전(09:00 ~ 13:00) 10:00~11:00 코드 카타 3문제
11:00~12:00 프로그래머스 4문제
12:00~13:00 머신러닝 과제_지도학습
오후(14:00 ~ 18:00) 14:00~18:00 머신러닝 과제_지도학습

요약

  1. 코드 카타 3문제
    1. 순서쌍의 개수
    2. 모음 제거
    3. 문자 반복 출력하기
  2. 프로그래머스 4문제
    1. 암호 해독
    2. 최댓값 만들기(2)
    3. 제곱수 판별하기
    4. 인덱스 바꾸기
  3. 머신러닝 과제_지도학습 https://bmk0703.tistory.com/77

오전(09:00 ~ 13:00)

1. 코드 카타 3문제

1.1. 순서쌍의 개수

def solution(n):
    answer = 0

    for i in range(1,n+1):
        if n % i ==0:
            answer +=1
            
    return answer

🤔 문제 풀이방법

  • for i in range(1,n+1):
    • 1부터 n+1 만큼의 범위를 i에 받을게요
  • if n % i ==0:
    • 만약 n을 i로 나누었을 때 나머지가 0이라면 n의 자연수가 될 거예요
  • answer +=1
    • 그 값을 answer에 +=1 씩 해주면 문제 해결!

 

1.2. 모음 제거

def solution(my_string):
    answer = ''
    collection = ("a", "e","i","o","u")
    
    for i in collection:
        my_string = my_string.replace(i,'')
            
    return my_string

🤔 문제 풀이방법

  • collection = ("a", "e","i","o","u")
    • 모음만 가지고 있는 튜플을 만들어줄게요
  • for i in collection:
    • 이제 튜플에 있는 값들을 하나하나 i에 담아줄 겁니다
  • my_string = my_string.replace(i,'')
    • i에 있는 모음이 my_string에 있는 거라면 .replace()을 써서 공백으로 바꿔줄게요
  • return my_string
    • 그렇게 해서 return을 해주면 문제 해결!

 

다른 팀원 풀이 

def solution(my_string):
    answer = my_string
    vowel = ("a", "e", "i", "o", "u")
    
    for i in vowel:
        answer = "".join(answer.split(i))
    return answer

🤔 문제 풀이방법

  • vowel 이라는 튜플 생성
  • 반복문으로 “”.join(spilt())로 문자 제거

어떻게 이런 발상을 하시죠,, 와,, join이랑 split으로 해결할 수 있다는 게 신기했어요

 

1.3. 문자 반복 출력하기

def solution(my_string, n):
    answer = ''
    
    for text in my_string:
        answer += text * n
        
    return answer

🤔 문제 풀이방법

  • for text in my_string:
    • my_string을 text에 순차적으로 순회하며 넣어줄게요
  • answer += text * n
    • text 문장을 n번만큼 출력을 할 거라서 text 곱하기 n을 해주면 문제 해결!

 

2. 프로그래머스 4문제

2.1. 암호 해독

def solution(cipher, code):
    answer = ''
    
    for i in range(len(cipher)):
        if (i+1)%code ==0:
            answer += cipher[i]
            
    return answer

🤔 문제 풀이방법

  • for i in range(len(cipher)):
    • 주어지는 cipher의 길이만큼을 범위로 해서 i에 넣어줄게요
  • if (i+1)%code ==0:
    • 문제가 code의 배수 번째 글자만이라고 했으니까 나누었을 때 0이 되는 값을 찾을게요
    • 이때 i+1을 해주는 이유는, 배수이기 때문에 code를 곱해줘야 하거든요 기본값이 0이기 때문에 +1을 해주었어요
  •  answer += cipher[i]
    • 그렇게 해서 cipher의 i 번째에 있는 단어를 answer에 추가해 주면, 문제 해결!

 

2.2. 최댓값 만들기(2)

def solution(numbers):
    numbers.sort()
    
    return max(numbers[0]*numbers[1], numbers[-1]*numbers[-2])

🤔 문제 풀이방법

  • numbers.sort()
    • numbers 자체를 sort 해서 정렬해 줄게요
  • return max(numbers[0]*numbers[1], numbers[-1]*numbers[-2])
    • numbers 안에는 음수값도 있기 때문에 큰 값 순으로 정렬을 하면 맨 뒤로 가게 돼요
    • 그래서 양수 두 개를 곱한 값과 음수 두 개를 곱한 값의 최댓값(max)을 찾으면 문제 해결!

 

 

와우,, 8점이나 올라가는 문제였네요?? (,,꒪ᐞ꒪,,)

 

2.3. 제곱수 판별하기

def solution(n):
    answer = 0
    
    if (n**0.5) % 1 ==0:
        answer = 1
    else:
        answer = 2
        
    return answer

🤔 문제 풀이방법

  • if (n**0.5) % 1 ==0:
            answer = 1
    • 제곱수인지 아닌지 판별하는 거예요
    • n의 0.5 제곱이 1로 나누었을 때 나머지가 0이라는 것은 n이 제곱수라는 뜻이에요
    • 그래서 answer을 1로 출력하도록 했어요
  • else:
            answer = 2
    • 그 외의 경우는 2가 출력되도록 설정하면 문제 해결!

 

2.4. 인덱스 바꾸기

def solution(my_string, num1, num2):
    my_string = list(my_string)
    my_string[num1],my_string[num2] = my_string[num2],my_string[num1]
    
    answer = "".join(my_string)
    return answer

🤔 문제 풀이방법

  • my_string = list(my_string)
    • my_string를 리스트화해서 하나하나 뜯어줄게요
  • my_string[num1],my_string[num2] = my_string[num2],my_string[num1]
    • num1과 num2를 각각 num2, num1로 바꾸어줄 거라서 조건을 걸어줍니다
  • answer = "".join(my_string)
    • 파이썬은 위에서부터 밑으로 순서대로 읽기 때문에
    • answer은 ""에 my_string을 join해준 값을 리턴하면 문제 해결!

오후(14:00 ~ 18:00)

3. 머신러닝 과제


마무리

갈수록 문제 푸는 속도가 빨라진 게 느껴져서 너무 뿌듯해요!

역시 사람은 하나를 시작할 때 씨앗부터 해서 꽃을 피우기까지의 과정을 거치는 거 같아요

저는 지금 줄기가 돋아나고 봉우리가 생길랑 말랑 중인 거 같아요 🤭

 

꽃이 한 계절을 대표해서 피잖아요

거의 계절이 얼른 찾아왔으면 좋겠어요 히히

 

감사합니다!

오늘도 수고 많으셨어요!

+ Recent posts