- 오늘은 코딩테스트 문제 위주로 풀었다. 밑에 작성한 것들 외에도 많이 풀었지만 뭔가 내가 나중에 다시 보고싶은 문제들 위주로 포스팅했고, 할 예정
https://sogummi.tistory.com/48
정올 1291 : 구구단 [Python]
JUNGOL 1291 구구단 범위 원하는 구구단의 범위를 입력받아 해당 구간의 구구단을 출력하는 프로그램을 작성하시오. (1) 구간의 처음과 끝을 입력받는다. (2) 입력된 구간은 반드시 처음 입력 값이
sogummi.tistory.com
https://sogummi.tistory.com/50
백준 25304 - 영수증
영수증에 적힌, 구매한 각 물건의 가격과 개수 구매한 물건들의 총 금액 을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자. 입력 첫째 줄
sogummi.tistory.com
https://sogummi.tistory.com/51
백준 2439 - 별찍기 2
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째
sogummi.tistory.com
https://sogummi.tistory.com/52
백준 10810 - 공넣기, 10813 - 공 바꾸기
도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이
sogummi.tistory.com
https://sogummi.tistory.com/53
백준 5597 - 과제 안내신 분..?
문제 X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는
sogummi.tistory.com
코딩문제 사이트를 정올에서 백준으로 옮기고 백준허브도 확장프로그램 설치 후 계속 연동에러가 났었는데 성공했다! 설정-보기에서 'solved' 등급을 '보기'로 지정해줘야한다. 이제 리포지토리에 내 코딩문제를 push할 수 있다.
아직 브론즈 문제라서 테스트만 하고 활성화 시키진 않았다. 실버문제를 풀 쯤에 연동을 시킬까 하는데 고민해봐야겠다. 또 개인과제 해설에서 몇 분들을 뽑아 리뷰를 해주셨는데, 몇몇 분들은 개인과제에 여러 기능을 포함시켜서 이미 고도화된? 상태로 제출을 하셨었다. 다들 너무 잘하셔서 자극도 됐다. 나는 금요일에 과제를 기본 요구사항과 조금의 추가기능만 추가하고 완성했고, 그 뒤는 개인공부하면서 아직 클래스 개념을 못 익히신 동기분들께 도움이 되고싶어서 주말과 평일에 따로 만나서 알려주고 같이 고민하고 도와줬었다. 실시간 강의를 끝나고 뭔가 나도 더 기능을 넣을 걸 그랬나.. 했지만 생각해보면 동기들과 함께 고민하고 해결하는 것이 여기서 말하는 중요한 가치니깐 앞으로도 모르는 부분이 있는 동기들은 도와주고, 나도 동기들에게 도움을 받고, 또 잘하신 분들 과제물은 내가 몰랐던 부분에 대해 배우고, 일석삼조라고 생각하고 열심히 임하면 나에게 더 도움이 될 것 같다고 생각한다. 다 같이 공부하니깐 혼자 공부할 때보다 얻어가는 것이 많은 것 같다. 협업에서의 마인드, 프로젝트 경험, 동기들, 공부에 대한 자극, 공부 습관, 어떻게 공부를 진행하면 될지의 방향성, 매니저님과 튜터님, 기술매니저님들의 조언과 격려, 등등.. 내일배움캠프를 참가하게 되어서 좋은 기회란 걸 자주 느끼고 있다. 더욱 열심히 해야겠다.
Today I Learned
* a, b = map(int(input().split())) 과 a, b = map(int, input().split())의 차이점?
- 문제 발생
코딩테스트를 풀던 중 사용자 입력 값을 받고 split으로 공백기준 분리한 다음, map을 이용해서 정수형으로 변환한 뒤 분리 된 값들을 a,b에 각각 할당하려고 했다. 단순히 int로 변환시켜주려면 input().split()을 문자열을 변환시키듯이 ()로 감싸주면 될 거라고 생각했는데 TypeError가 발생했다.
- 해결
map()함수에 대해 더 알아보니 map(함수, iterable 객체)를 받고, iterable객체의 모든 요소에 대해 함수를 적용 결과를 반환함.
def multiply(i):
return i * 2
a = [1, 2, 3, 4, 5]
result = map(multiply, a)
print(list(result))
#출력: [2,4,6,8,10]
위 예시에서 a 리스트는 multiply함수를 a의 모든 요소에 적용시킨 결과를 반환
+) map함수는 제너레이터(generator)객체를 반환하기에 print로 result만 출력한다면 객체의 메모리주소만 출력됨
따라서, list함수를 사용해서 제너레이터 객체를 리스트 객체로 변환하는 과정이 필요!
+) 제너레이터 객체는 iterable객체를 생성하는 객체. 메모리 효율적으로 관리하기 좋고, 큰 데이터를 다룰 때 유용하다고 한다. 나중에 제너레이터 객체에 대해서 더 알아봐야겠다.
- 알게된 점
map()함수는 lambda함수와 자주 사용됨 => 함수 별도로 정의하지 않고 간단하게 한줄로 나타낼 수 있어서 유용
아래 코드는 위의 코드를 lambda함수를 이용한 예시
a = [1, 2, 3, 4, 5]
result = map(lambda x: x * 2, a)
print(list(result))
* lambda 함수란?
익명함수를 생성하는 방법 중의 하나. 이름이 없는 작은 함수 개념 -> def키워드를 사용하여 생성하지 않고 lambda키워드를 사용한다.
my_list = [1, 2, 3, 4, 5]
multifive = map(lambda x: x*5, my_list)
print(list(multifive))
#출력 : [5, 10, 15, 20, 25]
람다함수는 익명 함수이기에 이름이 없다. 따라서, 한 번만 사용된다. 람다 함수를 변수에 할당하여 재사용할 수 있다.
'내일배움캠프 > 내일배움캠프 TIL' 카테고리의 다른 글
내일배움캠프 AI 5기 TIL 14일차 (2) | 2023.03.30 |
---|---|
내일배움캠프 AI 5기 TIL 13일차 (0) | 2023.03.29 |
내일배움캠프 AI 5기 TIL 11일차 (2) | 2023.03.27 |
내일배움캠프 AI 5기 TIL 10일차 (4) | 2023.03.24 |
내일배움캠프 AI 5기 TIL 9일차 (2) | 2023.03.23 |