프로그래머스 문제 : 평균 구하기, 자릿수더하기, 자연수 뒤집어 배열로 만들기 / 오늘 하루의 TIL / 유독 힘든 날이지만 흘러가게 버티자 /
프로그래머스
1. 평균구하기
- 첫 번째 방법 : SUM / len 으로 간단하게
def solution(arr):
return sum(arr) / len(arr)
- SUM()을 안쓴다면?
def solution(arr):
for i in arr
answer = answer+i
# answer += i
return answer / len(arr)
2. 자릿수더하기
def solution(n):
answer = 0
temp_list = list(str(n))
for i in temp_list:
answer = answer + int(i)
return answer
위에꺼 줄이면,
def solution(n):
answer = 0
for i in list(str(n)):
answer = answer + int(i)
return answer
n=123일 때, list(str(n))하면 ["1", "2", "3"] 형태로 출력된다. answer는 0부터 시작이니까,
answer = 0+int("1") = 1
answer = 1+int("2") = 3
answer = 3+int("3") = 6
리스트 컴프리헨션으로 줄일 수가 있다.
[answer += int(i) for i in str_n]map 함수를 사용했을 때
def solution(n) :
answer = 0
n = list(map(int, str(n)))
for i in range(len(n)):
answer += n[i]
return answer
3. 자연수 뒤집어 배열로 만들기
def solution(n):
list_n = []
for i in str(n):
list_n.append(int(i))
answer = list_n[::-1]
return answer
n=12345일 때, str(n) = "12345"
temp_list에 list(str(n))을 넣으면 ["1", "2", "3", "4", "5"]
print(temp_list[0:0:1]) 하면 처음부터 끝까지 리스트가 나오게 됨.
print(temp_list[0:0:-1]) 리스트를 뒤집게 됨.
해결 과제
- 리스트 컴프리헨션 공부하기 : 0205번 파일에서도
for a_tag in a_list:
a_link_no.append(a_tag["href"].split("/")[-1])을
table["내용번호"] = [a_tag["href"].split("/")[-1] for a_tag in a_list 라고 바꾼 적이 있다. - map 함수 공부하기
- reverse 함수와 .sort(reverse=True)의 차이 : reverse는 리스트를 뒤집어주지만, .sort(reverse=True) 하면 뒤집어서 정렬을 해준다. 예를 들어, ['15', '13', '1', '4' ,'10']이 있다면, reverse는 ['10', '4', '1', '13', '15'] 이렇게 뒤집지만, .sort(reverse=True) 하면 [15, 13, 10, 3, 1] 순으로 정렬된다.
내가 이해한게 맞나?
미니프로젝트
유튜브 따라하느라 find 함수를 사용했는데, select를 사용해서 리스트 가져오기를 해보았다. copy selector 를 익히니 select로 가져오기가 엄청 편하다.
a 태그의 href에는 링크가 담겨 있고, img 태그가 있다면 img alt에 기사 제목이 한 번 / 다시 a 태그의 href 링크내용과 기사 제목이 출력된다.
그래서 if 문을 사용해서 img 태그가 있다면, 첫 번째 태그에서 가져오고, 아니라면 두 번째 태그에서 가져오도록 설정하는건가?
조금 헷갈린다.
팀원들과 이야기 할 때, 한 페이지가 두 파트로 나뉘고, 페이지를 반복문으로 가져오려면 첫번째 페이지의 기사 링크들에서 가져온다고 했는데, 0205번 파일에서 href에서 번호만 가져온 것 처럼 링크를 가져올 필요가 있나보다. 조금 더 공부해보자.
221004 TIL
- 사실(Fact) : 서울 102 질문 페이지의 데이터를 내용까지 수집해오는 것을 배웠다.
- 느낌(Feeling)
- 1주차 때 처럼, 다시 한번 이해가 하나도 되지 않아도 버텨야 하는 시기인가보다.
- 수도 코드 생각해보라고 하셨을 때, 나는 너무 간략하게 짰구나.(근데 거기까지 밖에 이해 못해서 그렇게 된거)
- 교훈(Finding)
- BeautifulSoup은 파싱 도구라는거 기억하기
- 벨로그 다른 분들 정리 : 나도 미니프로젝트 해나가면서 고민했던 과정과 어떻게 해결했는지 적어보자
- 프로젝트를 어떤 식으로 진행할 건지 짜보는게 중요하구나!!!!!!!다음 팀 프로젝트 때는, 수도 코드랑 코드 리뷰 잘 해보자
- 오늘 하루
- 결실이 없을 때
스탬프 신경을 안 쓰고 싶은데, 신경이 쓰인다. 그게 뭐라고. 이런거에 초월하는 성격이고 싶다. 매 순간 열심히 임하고 있다고 생각하는데, 스탬프도, TIL 키워드도 부족함이 많나 보다. 오늘은 유독 모든 부분에서 하는 만큼의 결실이 안나오니까 조금 의욕이 떨어진다.
잘 버텨보자.... - negative 그만
그리고 데일리 설문이나 미니프로젝트 후기, TIL 등에서 너무 나의 힘들었던 점만 나열하지 않았나 되돌아보게 된다. 나의 힘듦은 나만의 힘듦일 뿐인데 너무 부정적 느낌만 제공한 것 같다. 앞으로는 그런 부분은 줄이고 그 힘듦이 있었지만 어떻게 극복했는지에 집중해서 글을 쓰자. - 함수 input과 output
함수, 반복문은 여전히 어렵다. 그런데 으쌰 팀에서 나눴을 때, 함수 변수 설정은 input과 output만 어떤 것으로 넣을지 고민해보면 쉬워질거라고 팀원이 나눠줘서, 그 부분에 대해서 고민해보자고 생각하게 되었다.
셀프 숙제
- 미니프로젝트 오늘 배운거 적용해서 코드 다시 짜보기
- raise_for_status랑 status_code랑 차이
- 프로그래머스 코딩테스트 입문 단계 풀어보기
댓글