인사말
오늘부터 팀이 바뀌었어요!
그리고 CH3_장고에 대해서 공부해야 하는 주차이기도 해요
1월 3일 ~ 1월 23일까지 유지되는 팀이래요!
아!
제가 조장이 되었기도 해요!
되게 잘 챙겨주고 싶고, 편하게끔 도와드리고 싶어서 많이 노력할 거예요
새로운 시작! 새로운 챕터! 너무 어려웠던 오늘의 프로그래머스 문제!
오늘도 어지러웠고, 재밌었던 하루였어요 🥳
금요일이네요!
주말 잘 보내시고 좋은 하루 되셨길 바라요~!
오늘의 일정 | |
오전(09:00 ~ 13:00) | 09:00~10:00 코드 카타 3문제 10:00~11:50 새로운 팀 새로운 노션 설정 및 회의 12:00~14:00 프로그래머스 4문제 |
오후(14:00 ~ 18:00) | 14:00~15:00 프로그래머스 4문제 15:30~18:00 파이썬 기본 이론 공부 |
저녁(19:00 ~ 21:00) | 19:00~21:00 장고 강의 시청 |
요약
- 코드 카타 3문제
- 공배수
- 문자열을 정수로 변환하기
- 문자열 뒤의 n글자
- 프로그래머스 4문제
- k의 개수
- 컨트롤 제트 https://bmk0703.tistory.com/110
- 소인수분해 https://bmk0703.tistory.com/111
- 이진수 더하기 https://bmk0703.tistory.com/112
- 파이썬 기본 이론 공부
- Python(파이썬) 표준 입력 https://bmk0703.tistory.com/113
- 모듈의 사용(import) https://bmk0703.tistory.com/114
- 장고 강의 시청
오전(09:00 ~ 13:00)
1. 코드 카타 3문제
1.1. 공배수
def solution(number, n, m):
answer = 0
if number % n == 0:
if number % m == 0:
answer = 1
else:
answer = 0
return answer
🤔 문제 풀이
- if number % n == 0:
if number % m == 0:
answer = 1- 중첩 if문을 써서 문제를 해결했어요
- 스타트 조건은 n의 배수일 때가 True일 때예요
- if number % m == 0:
- 그리고 또 if문을 써서 m의 배수일 때,
- answer = 1
- answer을 1로 출력되게 했어요
- else:
answer = 0- 해당되지 않는 조건은 0으로 출력해 주면 문제 해결!
다른 풀이
def solution(number, n, m):
answer = 0
if number % n == 0 and number % m == 0:
answer = 1
else:
answer = 0
return answer
이렇게 and을 써서도 문제를 풀 수 있어요!
1.2. 문자열을 정수로 변환하기
def solution(n_str):
return int(n_str)
🤔 문제 풀이
- 간단한 형변환 문제였어요!
- return int(n_str)
- 정수로 바꿀 때는 int로 하면 돼요
1.3. 문자열의 뒤의 n글자
def solution(my_string, n):
return my_string[-n:]
🤔 문제 풀이
- 문자열의 슬라이싱을 사용해서 문제를 해결했어요
- 슬라이싱은 [처음:끝:간격]으로 돼 있거든요
- return my_string[-n:]
- 뒤에서부터 n번째라고 했기 때문에 -n으로 하여, 문제 해결!
2. 프로그래머스 4문제
2.1. k의 개수
def solution(i, j, k):
answer = 0
for i in range(i, j+1):
answer += str(i).count(str(k))
return answer
🤔 문제 풀이
- for i in range(i, j+1):
- i에서 j+1 한 만큼 숫자를 데리고 올게요
- answer += str(i).count(str(k))
- count 함수는 문자열일 때만 count가 가능해요
- 그래서 i를 문자열화(str) 해주시고, 찾고자 하는 k의 개수를 문자열화(str)하여 count 해주시면 문제 해결!
2.2. 컨트롤 제트
def solution(s):
answer = 0
s_list = list(s.split())
for i in range(len(s_list)):
if s_list[i] == "Z":
answer -= int(s_list[i-1])
else:
answer += int(s_list[i])
return answer
https://bmk0703.tistory.com/110
🤔 문제 풀이
s는 숫자, "Z", 공백으로 이루어져 있습니다.
s에 있는 숫자와 "Z"는 서로 공백으로 구분됩니다.
- s_list = list(s.split())
- 위 문장을 힌트로 얻어서, s를 공백에 따라 list로 만들어주었어요
- for문으로 돌려야 하기 때문에 iterable 형식으로 만들어줘야 하거든요
- for i in range(len(s_list)):
- 인덱스 번호의 형태로 데리고 올게요
- if s_list[i] == "Z":
answer -= int(s_list[i-1])- 만약 s_list[i]가 "Z"일 때,
- 문제에서 "Z" 앞에 있는 숫자를 뺀다고 했잖아요?
- 그래서 s_list[i-1] 한 값을 int형으로 바꿔준 후 -= 하여 answer에 넣어줬어요
- else:
answer += int(s_list[i])- 그 외에는 바로바로 더해주어서 answer에 더하여 추가해 주었어요
- retrun 해주면, 문제 해결!
이거 왜 1점밖에 안 줘요?? ㅡㅡ
머리가 얼마나 아팠는데 1점밖에 안 주다니요 ㅡㅡ
2.3. 소인수분해
def solution(n):
answer = []
num = 2
while num <=n:
if n % num ==0:
answer.append(num)
n = n // num
else:
num +=1
return sorted(set(answer))
https://bmk0703.tistory.com/111
🤔 문제 풀이
- 소인수분해니까, n 값이 다 분해될 때까지 반복해야 되잖아요
- 그래서 while문으로 해보았어요
- num = 2
- 오늘 숫자의 공약수에는 1이 들어가 있으니까 2부터 시작했어요!
- while num <=n:
if n % num ==0:
answer.append(num)
n = n // num- num이 n보다 작거나 같을 때까지만 반복하도록 조건을 걸어줬어요
- 만약 n에 num을 나눴을 때 나머지가 0이라면 소인수라는 의미니까 answer에 append 해줄게요
- 그리고 n은 n을 num으로 나누었을 때 몫이 되는 값이에요
- else:
num +=1- 소인수가 아닐 경우 +1을 계속해주면서 while문을 종료해 나갈게요
- return sorted(set(answer))
- 그리고 중복값을 없애줄 set() 함수로 answer을 정리해 주고,
- set() 함수는 순서를 보장해주지 않기 때문에 정렬 함수가 필요해요
- sorted() 함수로 set(answer)을 정렬해 준 값을 return 해주면 문제 해결!
- 그리고 중복값을 없애줄 set() 함수로 answer을 정리해 주고,
하,, 오늘 푸는 프로그래머스 문제들이 하나같이 왜 이렇게 어려워요..?
소인수분해의 특징을 간파하기 전까지는 while문을 떠올리지도 못했어요
1시간이나 걸렸던 문제였어요 ㅠㅠ
이론 공부 하기도 전에 힘 다 빠졌네요 🙄
2.4. 이진수 더하기
def solution(bin1, bin2):
answer = ''
answer = int(bin1, 2) + int(bin2, 2)
return bin(answer)[2:] # bin() <- 이걸 쓰면 앞에 "0b"가 생겨서 슬라이싱 했음
https://bmk0703.tistory.com/112
🤔 문제 풀이
- 파이썬 자체에서 bin() 함수와 Int() 함수로 문자열화 된 진수들을 더할 수 있어요
- answer = int(bin1, 2) + int(bin2, 2)
- int(문자열, n진수)의 형태로 문자열 수만큼 더해주시면 덧셈 코드는 완성 돼요
- return bin(answer)[2:]
- 대신 출력할 때는 bin()을 쓰서야 하는데
- 이 bin() 함수는 자동으로 앞에 "0b"가 생성되기 때문에 슬라이싱([2:])으로 원하는 값을 반환해 주시면 문제 해결!
- 대신 출력할 때는 bin()을 쓰서야 하는데
바뀐 팀원분들과 상의해서 풀었어요 히히
오늘 프로그래머스 문제들 점수가 아주 짭짤하네요 😋
오후(14:00 ~ 18:00)
3. 파이썬 기본 이론 공부
3.1. Python(파이썬) 표준 입력
3.2. 모듈의 사용(import)
저녁(19:00 ~ 21:00)
4. 장고 강의 듣기
마무리
장고,, 들어가봅시다,,
주말 잘 보내시고 내일도 공부하러 올 거예요!
내일은 장고 글로 뵙겠습니다 ㅎㅎ
주말 잘 보내세요~!
'내일배움캠프 TIL' 카테고리의 다른 글
[TIL] 내일배움캠프 본캠프 30일차_코드 카타, 파이썬 기본 이론 공부, 베이직반 (0) | 2025.01.07 |
---|---|
[TIL] 내일배움캠프 본캠프 29일차_코드 카타, 프로그래머스, 파이썬 기본 이론 공부, 베이직반 (0) | 2025.01.06 |
[TIL] 내일배움캠프 본캠프 27일차_코드 카타, 프로그래머스, 파이썬 기본 이론 공부 (2) | 2025.01.02 |
[TIL] 내일배움캠프 본캠프 26일차_코드 카타, 프로그래머스, 마크다운, github 협업하기 (0) | 2024.12.31 |
[TIL] 내일배움캠프 본캠프 25일차_코드 카타, 비지도학습, 프로그래머스 (0) | 2024.12.30 |