QUIZ

문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요.

 

ANSWER

def solution(my_string, k):
    return my_string * k

 

POINT

완전 쉽다 ! 문자열을 N번 반복하고 싶을 때는 < 문자열 * N > 을 하자 

 

 

QUIZ

두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.

 

ANSWER

def solution(a, b, flag):
    if flag:
        return a+b
    else:
        return a-b

 

ANOTHER ANSWER

def solution(a, b, flag):
    if flag: return a+b
    return a-b
def solution(a, b, flag):
    return a + b if flag else a - b

 

POINT

ture인가 false인지에 따라 return 값을 달리 하고 싶을 경우,

그냥 if 매개변수:로 확인 가능 !! 

 

QUIZ

정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.

 

ANSWER

import numpy as np

def solution(num_list):
    result1 = np.prod(num_list)
    result2 = pow(sum(num_list),2)
    
    if result1 < result2:
        return 1
    else:
        return 0

 

ANOTHER ANSWER

def solution(arr, k):
    return [i*k if k%2!=0 else i+k for i in arr]

 

POINT

합을 구할 때는 SUM ! SQL, 엑셀 어디서든 무조건 SUM 잊지마세요

numpy 함수는 자주 나오는 것 같으니, 꼭 잊지말고 기억해두자

 

기본 수학 연산

  • numpy.add : 어레이의 요소 단위로 덧셈
  • numpy.subtract : 어레이의 요소 단위로 뺄셈
  • numpy.multiply : 어레이의 요소 단위로 곱셈
  • numpy.divide : 어레이의 요소 단위로 나눗셈 계산(true division)
  • numpy.true_divide : 어레이의 요소 단위로 나눗셈 계산(true division)
  • numpy.floor_divide : 어레이의 요소 단위로 나눗셈 계산(floor division)
  • numpy.remainder : 요소 단위로 나눗셈의 나머지
  • numpy.mod : 요소 단위로 나눗셈의 나머지
  • numpy.prod : 주어진 축을 따라 어레이 요소의 곱을 반환
  • numpy.reciprocal : (요소 단위로) 어레이의 역수를 반환

합/평균/표준편차/분산 계산

  • numpy.sum : 지정된 축을 따라 어레이 요소의 합을 계산
  • numpy.cumsum : 지정된 축을 따라 어레이 요소의 누적 합을 계산
  • numpy.mean : 지정된 축을 따라 어레이 요소의 산술 평균을 계산
  • numpy.std : 지정된 축을 따라 어레이 요소의 표준편차를 계산
  • numpy.var : 지정된 축을 따라 어레이 요소의 분산을 계산

반올림/올림/내림 등

  • numpy.around : 어레이의 성분을 주어진 소수점 자리로 반올림
  • numpy.ceil : 입력의 요소 단위의 ‘ceil’ 값을 반환
  • numpy.clip : 어레이의 최소값, 최대값을 지정
  • numpy.fix : 0을 향해 가장 가까운 정수로 올림(또는 내림)
  • numpy.floor : 입력의 요소 단위의 ‘floor’ 값을 반환
  • numpy.rint : 어레이의 성분을 가장 가까운 정수로 반올림
  • numpy.round : 어레이의 성분을 주어진 소수점 자리로 반올림
  • numpy.trunc : 입력을 truncate한 값 또는 어레이를 반환

부호 관련

  • numpy.absolute : 어레이의 요소 단위로 절대값을 반환
  • numpy.fabs : 어레이의 요소 단위로 절대값을 반환
  • numpy.positive : 요소 단위의 ‘numerical positive’를 반환
  • numpy.negative : 요소 단위의 ‘numerical negative’를 반환
  • numpy.sign : 숫자의 부호를 반환

인덱스/값 검색

  • numpy.amax : 어레이의 최대값을 반환
  • numpy.amin : 어레이의 최소값을 반환
  • numpy.argmax : 최대값을 갖는 성분의 인덱스를 반환
  • numpy.argsort : 어레이를 정렬하는 인덱스의 어레이를 반환
  • numpy.nonzero : 0이 아닌 성분의 인덱스를 반환
  • numpy.take : 인덱스를 이용해서 어레이의 요소를 가져옴
  • numpy.where : 조건에 맞는 성분의 인덱스를 반환

비교

  • numpy.greater : 요소 단위로 (x1 > x2)의 진리값을 반환
  • numpy.greater_equal : 요소 단위로 (x1 >= x2)의 진리값을 반환
  • numpy.less : 요소 단위로 (x1 < x2)의 진리값을 반환
  • numpy.less_equal : 요소 단위로 (x1 <= x2)의 진리값을 반환
  • numpy.not_equal : 요소 단위로 (x1 != x2)의 진리값을 반환
  • numpy.equal : 요소 단위로 (x1 == x2)의 진리값을 반환
  • numpy.array_equal : 두 어레이의 형태와 요소들이 모두 동일하다면 True, 그렇지 않다면 False를 반환
  • numpy.allclose : 두 어레이의 모든 요소의 차이가 허용 오차 이내에 있다면 True, 그렇지 않다면 False를 반환
  • numpy.isclose : 두 어레이의 각 요소의 값의 차이가 허용 오차 이내에 있다면 True, 그렇지 않다면 False를 반환

저장하기/불러오기

  • numpy.savetxt : 어레이를 텍스트 파일로 저장
  • numpy.loadtxt : 텍스트 파일로부터 데이터를 불러옴

출처

https://codetorial.net/numpy/functions/index.html

QUIZ

정수 배열 arr와 자연수 k가 주어집니다.
만약 k가 홀수라면 arr의 모든 원소에 k를 곱하고, k가 짝수라면 arr의 모든 원소에 k를 더합니다.
이러한 변환을 마친 후의 arr를 return 하는 solution 함수를 완성해 주세요.

 

ANSWER

def solution(arr, k):
    answer = []
    if k%2==0:
        for i in arr:
             answer.append(i+k)
    else:
        for i in arr:
            answer.append(i*k)
    return answer

 

ANOTHER ANSWER

def solution(arr, k):
    return [i*k if k%2!=0 else i+k for i in arr]

 

POINT

지난번에 append에 대해서 리마인드 했을 때, num_list.append(i) = k 이런식으로 사용하는 것으로만 생각했다.

그런데 i에 1,2,3,4 순차적인 숫자가 아니라 리스트의 값이 들어가다보니 위와 같이 표시하기 어려웠다.

 

그래서 알게된 포인트는 num_list.append(i*k) 이렇게 사용할 수 있다는 점이다 ! 

어떤 리스트에 괄호 안의 값을 추가하고 싶을 떄는 '='으로 엮지말고 괄호 안에다가 쓰자 

QUIZ

정수가 담긴 리스트 num_list가 주어집니다. 

num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.

 

ANSWER

def solution(num_list):
    odd = []
    even = []  
    for i in num_list:
        if i % 2 == 0:
            even.append(str(i))
        else:
            odd.append(str(i))
            
    return int(''.join(even)) + int(''.join(odd))

 

ANOTHER ANSWER

def solution(num_list):
    answer = 0
    a=""#홀수
    b=""#짝수
    for i in num_list:
        if i%2!=0:
            a+=str(i)
        else:
            b+=str(i)
    return int(a)+int(b)

 

POINT

이번꺼는 another answer도 거의 비슷하긴한데, 배울점은 append를 쓰지않고 '+=' 형태로 간추렸다는 것 !

그리고 굳이 even, odd 같은 문구가 아니더라도 a,b로 쓰고 주석을 달아놓는게 오히려 편할 수도 있음

int : 정수형 표현

str : 문자열 표현

join : 어떤 것을 기준으로 이어 붙일 때 > ''.join(num_list) ** 문자열만 가능

append : 리스트에 추가하는 경우 > num_list.append(i) 와 같음 >>  +=i

 

QUIZ

실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return하도록 solution 함수를 완성해주세요.

 

MY ANSWER

def solution(flo):
    return int(flo)

 

ANOTHER ANSWER

def solution(flo):
    return flo//1

 

POINT

파이썬에서 나눗셈, 나눗셈의 몫, 나눗셈의 나머지를 구하는 것을 기억하자 !

  • / : 나누기 연산자
  • // : 파이썬에서 정수 나눗셈(나누기 연산)에서의 나머지를 버리고 정수 부분만을 반환하는 연산자
  • % : 나머지 연산자

 

 

QUIZ

Consider  and  to be two points on a 2D plane where  are the respective minimum and maximum values of Northern Latitude (LAT_N) and  are the respective minimum and maximum values of Western Longitude (LONG_W) in STATION.

Query the Euclidean Distance between points  and  and format your answer to display  decimal digits.

 

MY ANSWER

SELECT ROUND(SQRT(POWER(MAX(LAT_N)-MIN(LAT_N),2) + POWER(MAX(LONG_W)-MIN(LONG_W),2)),4)
FROM STATION

 

POINT

제곱은 Power, 루트는 SQRT !

  • POWER(x, 제곱 할 자리수)
  • SQRT(x)

QUIZ

Query the greatest value of the Northern Latitudes (LAT_N) from STATION that is less than . Truncate your answer to  decimal places.

 

MY ANSWER

SELECT TRUNCATE(MAX(LAT_N),4)
FROM STATION
WHERE LAT_N < 137.2345

 

POINT

잘라야할 때는 TRUNCATE, 반올림 할때는 ROUND !

  • TRUCNTATE(자르고자 하는 것, 남길 자리수)
  • ROUND(반올림 하고자 하는 것, 남길 자리수)
 

+ Recent posts