앞으로는 예제 하나씩 풀어가면서
하루에 한 개 이상의 함수를 분석하고 이해하여 사용하고자 한다.
단, 내 마음대로 작성하지 않기!
1시간 이상 한 가지로 고민하지 않기!
오늘은 어제 팀원분들과 고민했던 a+b 문제와 매우 유사해보이는 a*b, a/b문제를 풀이했다.
예제 : backjoon 10998, 1008
풀이 : 나누기는 *를 /로 변경
a, b = map(int,input().split())
if a > 0 and b < 10:
result = a * b
print(result)
과정
매니저님이 푸셨다는 한 줄 풀이 방법이 너무 멋있어서 써보고싶었다.
풀이에 사용하셨다던 map()을 사용해보기 위해 map()함수에 대해 공부했다.
map(function, iterable)
매개변수란 함수의 입력값을 받는 변수이며,
매개변수1 = 함수
매개변수2 = 반복가능한 자료형
반복가능한 자료형2를 1에 집어넣어 함수를 수행
시도1.
이렇게 어려운 말로 첫 공부를 하고 처음 작성한 코드.
map(a * b, int(input()).split()) #이게 무슨 혼종..
map의 function이 함수라는 건 홀랑 잊고 매개변수2를 1에 넣어 수행한다는 것에만 꽂혀서
결과값으로 받아야하는 a * b를 넣었다.
-> a, b는 변수나 상수이기때문에 넣으면 false값이 뜨며 에러가 난다고한다.
그리고 이전 문제를 풀며 배운, 'input에 입력한 것은 문자열'을 적용하여 int로 감싸고자 했다.
-> .split은 문자열을 나누는 코드기 때문에 나누어질리가 없다.
어찌되었든 가장 큰 문제는 map에 대한 이해가 부족했다..
시도2.
그래서 다시 map(), input()을 쉬운 말로 공부했다.
map은 여러 개의 값을 지정받고, 지정받은 값을 함수에 넣어 각각 변환해준다.
map(값을 적용할 함수, 값 ~여러 개)
함수란 def 으로 정의할 수도 있고 python에 내장되어있는 여러 함수 코드들이 있다.
내장된 함수에는 대표적으로 int, str, import, print 등 그동안 예제문에서 많이 접했던 코드들이 있었다.
값에는 '반복 가능한', 그러니까 리스트처럼 여러 개의 요소를 가지는 것이 들어갈 수 있다. 생각해보니 for문같은 느낌이네
이러한 객체를 iterable이라고 한다. 반복가능한 객체.. ㅋㅋㅋㅋ
list, tuple, string, set(집합), dict 등이 이에 해당한다.
그리고 내가 사용하려는 input은 입력받는 함수로, 호출하면 사용자가 값을 직접 입력할 수 있게 해준다.
input의 결과물은 str, 문자열이기 때문에 숫자를 계산하고 싶은 경우, 실수인 float나 정수인 int로 변환하여 사용하여야한다.
a = int(input( )) 에서
input을 호출하여 안에 숫자 1을 입력하면
> 1은 "1"인 상태로 int("1") 안에 들어가고,
> int가 "1"을 1로 바꾸어주어 a에 정수 1이 저장!
함수 이해 후 다시 코드를 작성했다.
a, b = map(int,input().split())
input에 2개의 숫자를 입력하면 "1 2", 이후 split이 "1"과 "2"로 나누어주고
int가 적용되어 숫자 1과 2로 변환, 각각 a, b에 저장된다.
그 다음 조건인 a > 0, b < 10 을 넣기 위해 if문에 and를 사용하였고,
a * b를 result 변수에 넣어 출력....
완성.....ㅠㅠ
느낀 점 :
아직 모르는게 너무 많다. 기초가 너무너무너무너무 부족하다..
심심할때마다 놀지말고 python 함수문서를 읽어야겠다...
한줄 풀이는 좀더 실력이 쌓이고 이 글에 돌아와서 다시 작성해야지!
그리고 자꾸 이해가 부족하면 내 마음대로 코드를 작성하려고 한다.
일명 때려맞히기가 자꾸 발동되는데, 제~~~발 확실하게 이해한 다음에 작성하자..!! 제발~!!!
'알고리즘 풀이' 카테고리의 다른 글
[algorithm] 프로그래머스: 몫 구하기 (0) | 2023.04.04 |
---|---|
[algorithm] 백준: 2588 곱셈 (2) | 2023.04.03 |
[algorithm] 백준: 10430 나머지 (0) | 2023.04.02 |
[algorithm] 백준: 10926 ??!, 18108 불기연도 계산 (1) | 2023.03.30 |
[algorithm] 백준 : 10869 사칙연산 풀이 (0) | 2023.03.29 |