인사말
앞으로의 제 앞날이 걱정되네요
일단 해야죠 뭐,,
숨 참고, 공부 dive~~
파이팅!!!!
오늘의 일정 | |
오전(09:00 ~ 13:00) | 09:00~10:00 코드 카타 2문제 및 팀 오전 회의 10:00~13:00 프로그래머스 4문제 |
오후(14:00 ~ 18:00) | 14:00~15:00 베이직반 수업 15:00~18:00 장고 강의 |
요약
- 코드 카타 2문제
- 문자열 붙여서 출력하기
- 대문자로 바꾸기
- 프로그래머스 4문제
- 등수 매기기 https://bmk0703.tistory.com/139
- 저주의 숫자 3 https://bmk0703.tistory.com/140
- 유한소수 판별하기 https://bmk0703.tistory.com/141
- 문자열 밀기 https://bmk0703.tistory.com/142
- 베이직반 수업
- 장고 강의
- App(앱) 생성 및 등록하기 https://bmk0703.tistory.com/143
- 클라이언트 - 서버 구조 이해하기 https://bmk0703.tistory.com/144
오전(09:00 ~ 13:00)
1. 코드 카타 2문제
1.1. 문자열 붙여서 출력하기
str1, str2 = input().strip().split(' ')
print(str1+str2)
🤔 문제 풀이
- 문자열은 +로 해서 바로 붙일 수 있어요
1.2. 대문자로 바꾸기
def solution(myString):
return myString.upper()
🤔 문제 풀이
- 문자를 대문자로 바꿔주는 함수는 .upper()이에요
- 반대로 소문자로 바꿔주는 함수는 .lower()이에요
2. 프로그래머스 4문제
2.1. 등수 매기기
def solution(score):
answer = []
avg = []
for i in score: # 각 점수들의 평균들 구하기
avg.append(sum(i)/len(i))
arr_avg = sorted(avg, reverse=True) # 내림차순으로 정렬하기
for i in avg: # 등수 매기기
answer.append(arr_avg.index(i)+1) # index는 0부터 시작해서 +1을 해줌
return answer
https://bmk0703.tistory.com/139
🤔 문제 풀이
- avg = []
- 각 점수들의 평균값을 담아줄 리스트를 새로 추가해 줘요
- for i in score: # 각 점수들의 평균들 구하기
avg.append(sum(i)/len(i))
arr_avg = sorted(avg, reverse=True) # 내림차순으로 정렬하기- 이중 리스트로 들어가 있지만, for문으로 하나하나 다 값을 순회할 수 있어요
- 각각의 평균을 구해서 avg 리스트에 추가해 줘요
- 추가된 avg 리스트를 정렬해 준 후, 내림차순으로 다시 정렬해 줄게요
- for i in avg: # 등수 매기기
answer.append(arr_avg.index(i)+1) # index는 0부터 시작해서 +1을 해줌- 평균을 구해놨덤 avg 리스트로 등수를 매겨줄게요
- arr.avg의 크기 순서대로 인덱싱 한 값을 answer에 넣어줘요
- return answer
- 그리고 answer을 return 하면 문제 해결!
2.2. 저주의 숫자 3
def solution(n):
answer = 0
for i in range(n):
answer += 1 # 범위값까지 계속 +1 해주기
while answer % 3 == 0 or '3' in str(answer): # answer에 3의 배수 또는 '3'이 있으면
answer += 1 # 그 n의 숫자에 +1을 해줘서 없애기
return answer
https://bmk0703.tistory.com/140
🤔 문제 풀이
- for i in range(n):
- 범위값으로 n까지 해주었어요
- answer += 1
- answer에는 점점 +1을 해가며 값이 커질 겁니다.
- while answer % 3 == 0 or '3' in str(answer): # answer에 3의 배수 또는 '3'이 있으면
answer += 1 # 그 숫자에 +1을 해줘서 없애기- if가 아니라 while로 해주었어요
- 3의 배수와 '3'이 없어질 때까지 계속 돌려야 하기 때문이에요
- if가 아니라 while로 해주었어요
- return answer
- return answer을 해주면 문제 해결!
2.3. 유한소수 판별하기
from math import gcd # gcd 함수는 최대 공약수를 구할 때 쓴다.
def solution(a, b):
# 최대 공약수 구하기
b //= gcd(a,b) # a와 b의 최대 공약수를 분모가 될 b에 몫으로 계산한 값을 반환
while b % 2 == 0: # 기약분수일 때 분모가 2의 배수인 경우
b //= 2 # 소수점을 날리기 위해서 몫 계산식으로 바꿀 거라고 정의함
while b % 5 == 0: # 기약분수일 때 분모가 5의 배수인 경우
b //= 5 # 소수점을 날리기 위해서 몫 계산식으로 바꿀 거라고 정의함
return 1 if b == 1 else 2 # 나머지에 다시 몫으로 계산한 값이 2와 5의 배수였으면 b는 1을 반환하게 됨.
# b값이 2와 5의 배수였다면 유한소수, 아니었으면 무한소수임.
https://bmk0703.tistory.com/141
🤔 문제 풀이
- 문제를 읽자마자 b값이 2와 5의 최대 공약수이거나 배수이면 유한소수겠구나 싶었어요
- from math import gcd
- b //= gcd(a,b)
- 최대 공약수는 math에서 gcd 함수를 불러와서 해결해 주었어요
- while b % 2 == 0:
b //= 2
- 2의 배수를 찾아내서 그 값들은 소수점을 버리고 몫만 챙기겠다고 정의했어요
- 유한소수이기 때문에 몫만 챙겨가면 되거든요
- while b % 5 == 0:
b //= 5- 5의 배수일 경우에도 마찬가지로 해주었어요
- return 1 if b == 1 else 2
- 마무리로 삼항 연산자로 정리해 주었어요
- b == 1일 경우가 2와 5의 배수여서 나누어 떨어졌음을 의미해요
- 이 경우일 경우 유한소수이기 때문에 1로 출력되게 하고, 아닐 경우 2로 출력하게 하면, 문제 해결
2.4. 문자열 밀기
def solution(A, B):
for i in range(len(A)): # len(A) 만큼 돌아가면서 재배열
if A == B: # 만약 재배열되더라도 A와 B가 같으면
return i # 횟수를 찾기 위한 코드
A = A[-1] + A[:-1] # 맨 마지막에 있던 문자가 맨 앞으로 오고, 처음부터 끝까지를 이어붙이면 A 완성
return -1
https://bmk0703.tistory.com/142
🤔 문제 풀이
- for i in range(len(A)):
- len(A) 만큼 범위로 하여 for문을 돌려줄게요
- if A == B:
return i- 만약에 A와 B가 같다면, i의 숫자를 반환해 줄게요
- range는 0부터 시작이니까 "abc" == "abc" 조건도 충족이 되겠죠?
- A = A[-1] + A[:-1]
- for문을 둘렸을 때 A가 어떻게 구성될 것인지 재정의 해주었어요
- return -1
- A != B일 경우 -1을 리턴하도록 해주면, 문제 해결!
오후(14:00 ~ 18:00)
3. 베이직반 수업
4. 장고 강의
4.1. App(앱) 생성 및 등록하기
4.2. 클라이언트 - 서버 구조 이해하기
'📕 내일배움캠프 TIL' 카테고리의 다른 글
[TIL] 내일배움캠프 본캠프 35일차_코드 카타, 장고 강의, 베이직반 (0) | 2025.01.14 |
---|---|
[TIL] 내일배움캠프 본캠프 34일차_코드 카타, 장고 강의 (0) | 2025.01.13 |
[TIL] 내일배움캠프 본캠프 32일차_코드 카타, 프로그래머스, 파이썬 기본 이론 공부(튜플, 딕셔너리) (0) | 2025.01.09 |
[TIL] 내일배움캠프 본캠프 31일차_코드 카타, 프로그래머스, 파이썬 기본 이론 공부 (1) | 2025.01.08 |
[TIL] 내일배움캠프 본캠프 30일차_코드 카타, 파이썬 기본 이론 공부, 베이직반 (0) | 2025.01.07 |