오늘의 일정 | |
오전(09:00 ~ 13:00) | 09:00~09:30 코드 카타 3문제 09:00~09:45 Chapter 3 발제 09:50~13:00 프로그래머스 4문제 |
오후(14:00 ~ 18:00) | 14:00~18:00 파이썬 기본 이론 공부 |
저녁(19:00 ~ 21:00) | 19:00~20:30 베이직반 수업 20:30~21:00 TIL 마무리 |
요약
- 코드 카타 3문제
- 소문자로 바꾸기
- 원소들의 곱과 합
- 문자열 곱하기
- 프로그래머스 4문제
- 가까운 수 https://bmk0703.tistory.com/103
- 한 번만 등장한 문자 https://bmk0703.tistory.com/104
- 7의 개수 https://bmk0703.tistory.com/105
- A로 B 만들기
- 파이썬 기본 이론 공부
- 제01장 첫 번째 계단밟기
- 프로그램, 프로그래밍 언어 https://bmk0703.tistory.com/106
- 주석, 들여 쓰기, 행결합/행분리 https://bmk0703.tistory.com/107
- 제02장 두 번째 계단밟기
- Python(파이썬) 표준 입출력, 출력 https://bmk0703.tistory.com/108
- 제01장 첫 번째 계단밟기
- 베이직반 수업
오전(09:00 ~ 13:00)
1. 코드 카타 3문제
1.1. 소문자로 바꾸기
def solution(myString):
return myString.lower()
🤔 문제 풀이방법
- .lower() 함수를 써서 소문자화 해주었어요
- .upper() 함수를 쓰시면 대문자화 할 수 있어요
1.2. 원소들의 곱과 합
def solution(num_list):
answer = 0
multiply = 1
add = 0
for i in range(len(num_list)):
multiply *= num_list[i]
add += num_list[i]
if multiply < add**2:
answer = 1
else:
answer = 0
return answer
🤔 문제 풀이방법
- answer = 0
multiply = 1
add = 0
- for문을 각각 더해주고, 곱해줄 거기 때문에 객체를 만들어주었어요
- multiply는 곱해줄 거기 때문에 1부터 시작할게요
- for i in range(len(num_list)):
- 인덱스 값으로 뽑아낼 거기 때문에 num_list의 길이만큼 range를 i로 출력할게요
- multiply *= num_list[i]
add += num_list[i]
- num_list의 i번째 숫자를 각각 곱해주고 더해준 값을 각각의 객체에 넣어줬어요
- if multiply < add**2:
answer = 1
else:
answer = 0
- 모든 원소들의 곱이, 모든 원소들의 합의 제곱보다 작으면 1을 출력해요
- 아닌 경우에는 0을 출력하도록 했어요
- return 해주면 문제 해결!
def solution(num_list):
multiply = 1
add = 0
for i in range(len(num_list)):
multiply *= num_list[i]
add += num_list[i]
return 1 if multiply < add**2 else 0
문제는 해결했지만, 코드를 줄여보고 싶더라구요
그래서 튜터님의 도움을 받아서 삼항 연산자를 통해 코드 길이를 줄여보았어요!
1.3. 문자열 곱하기
def solution(my_string, k):
return my_string *k
🤔 문제 풀이방법
- 문자열 반복은 곱하기(* 숫자) 해주시면 원하는 숫자만큼 반복 출력돼요
2. 프로그래머스 4문제
2.1. 가까운 수
def solution(array, n):
array.sort()
sub_array = []
for i in range(len(array)):
sub_array.append(abs(n - array[i]))
return array[sub_array.index(min(sub_array))]
🤔 문제 풀이
- array.sort()
- 문제에서 "정렬된" 매개변수가 주어진다 하진 않았으니까 정렬부터 해줄게요
- sub_array = []
- n과의 차이를 구한 결괏값을 담는 객체를 만들어줄게요
- for i in range(len(array)):
- 이번에도 인덱스 형태로 뽑아낼게요
- sub_array.append(abs(n - array[i]))
- abs() 함수는 절댓값을 뽑아내는 함수예요
- n에 array[i]번째 값을 뺀 절댓값을 sub_array에 넣어줄게요
- return array[sub_array.index(min(sub_array))]
- min(sub_array) : 가장 작은 값
- sub_array.index(min(sub_array)) : sub_array에서 min(sub_array)인 값의 인덱스 번호를 찾는 거예요
- array[sub_array.index(min(sub_array))] 이제 그 결괏값의 인덱스 번호를 array에서 데리고 올게요
- 뭔 말인지 모르겠죠? 저도 그랬어요
array = [3, 10, 28]
sub_array = [17, 10, 8]
min(sub_array) == 8
sub_array.index(min(sub_array)) == sub_array.index(8) == 2
array[sub_array.index(min(sub_array))]
== array[sub_array.index(8)] == array[2] == 28
- 이렇게 되는 거예요!
진짜,, 1시간 30분이나 걸리며 풀었던 문제예요 ㅠㅠㅠㅠㅠㅠㅠ
너무 어렵더라구요,,
초반에 접근 방식은 좋았는데, 그 뒤로 코드를 완성시키지 못해서 고민이 많이 된 문제였어요
2.2. 한 번만 등장한 문자
def solution(s):
answer = ''
for i in s:
if s.count(i) ==1:
answer +=i
return ''.join(sorted(answer))
🤔 문제 풀이
- for i in s:
if s.count(i) ==1:
answer +=i- for문을 통해서 s의 문자열에서 한 번만 등장한 문자의 수를 셀 거예요
- 만약 s에서 i의 문자가 1과 같다면 answer에 i 값을 추가해 줄게요
- return ''.join(sorted(answer))
- 그리고 추가된 i들을 정렬해 준 뒤, join 함수를 써서 ''에 넣어주고 retrun 해주면 문제 해결!
오늘은 .count() 함수를 쓰는 문제가 많이 나온 거 같아요!
.count() 함수를 연속해서 쓰다 보니까 감이 잡히네요!
2.3. 7의 개수
def solution(array):
array = str(array)
return array.count('7')
🤔 문제 풀이
- array = str(array)
- array를 문자열화 해줄게요
- return array.count('7')
- 문자열화 한 array에서 '7'이 몇 개가 있는지 .count() 함수를 써서 개수를 확인하면 문제 해결!
이번에도 .count() 함수를 써서 문제를 해결할 수 있었어요 🤭
2.4. A로 B 만들기
def solution(before, after):
answer = 0
if sorted(before) == sorted(after):
answer = 1
else:
answer = 0
return answer
🤔 문제 풀이
- 문제를 보자마자 'before와 after 속의 문자들이 같으면 되겠구나' 싶었어요
- if sorted(before) == sorted(after):
answer = 1
- 그래서 if문으로 각각 sorted 한 값이 같다면 1을 출력해 주고
- else:
answer = 0- 그게 아니라면 0을 출력하도록 해서, return 해주면 문제 해결!
엥..? 5점이나 주네요?
오늘도 이렇게 문제를 풀어보았어요!
갈수록 입문 테스트 문제가 아닌 것만 같은 느낌이 들어요,, 🤔
오랜만에 1시간 이상 걸리면서 고민하고 문제 푼 기분이네요!
굉장히 머리가 간지럽고 뿌듯했던 문제 풀이었어요 ㅎㅎ
함수를 찾는 과정에서도, 인터넷에 어떻게 검색을 해야 알 수 있을지도 감 잡았어요!
재밌었습니다 😋
오후(14:00 ~ 18:00)
3. 파이썬 기본 이론 공부
3.1. 제01장 첫 번째 계단밟기
3.1.1. [Python] 프로그램과 프로그래밍 언어
3.1.2. [Python] 주석, 들여 쓰기, 행결합/행분리
01 주석
주석을 이렇게나 쉽게 달 수 있다니,, 신세계였어요
03 행결합/행분리
이게 더 신기해요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
세미콜론도 쓰는 경우가 있군요!!
11번째, 12번째 코드가 진짜 신기해요!!
03 행분리
호오,, 🤔
역시 공부를 할 땐, 기본서부터 읽어둬야 할 거 같아요
몰랐던 개념이 아주 그냥 물 흐르듯이 나오네요 🥲
3.2. 제02장 두 번째 계단밟기
3.2.1. [Python] Python 표준 입출력, 표준 출력
저녁(19:00 ~ 21:00)
4. 베이직반 수업
마무리
하,, 머리야
파이썬을 제대로 잘 잡아놔야 더 상위 개념을 배울 때, 흔들리지 않고 진도가 나아갈 거라 생각했거든요
그래서 이번주 주말까지 파이썬 기본 이론들 꽉 잡을 생각이에요
갈수록 할 게 많아지는데, 기초가 아직 튼튼하지 않아서 걱정이네요 🥲
더 많은 생각이 들기 전에, 정리하도록 하겠습니다
오늘도 수고 많으셨어요, 안녕히 주무세요
감사합니다
'내일배움캠프 TIL' 카테고리의 다른 글
[TIL] 내일배움캠프 본캠프 28일차_코드 카타, 프로그래머스, 파이썬 기본 이론 공부, 베이직반 수업 (1) | 2025.01.03 |
---|---|
[TIL] 내일배움캠프 본캠프 26일차_코드 카타, 프로그래머스, 마크다운, github 협업하기 (0) | 2024.12.31 |
[TIL] 내일배움캠프 본캠프 25일차_코드 카타, 비지도학습, 프로그래머스 (0) | 2024.12.30 |
[TIL] 내일배움캠프 본캠프 24일차_코드 카타, 프로그래머스, 머신러닝(지도학습 끝) (2) | 2024.12.27 |
[TIL] 내일배움캠프 본캠프 23일차_코드 카타, 프로그래머스 4문제, 머신러닝_지도학습 (1) | 2024.12.26 |