728x90
def solution(n):
    answer=[]
    while(n>0):
        answer.append(n%10)
        n//=10
    return answer
def solution(n):
    answer=list(str(n))
    answer.reverse()
    return list(map(int,answer))

리스트에 map을 사용해보겠습니다. map은 리스트의 요소를 지정된 함수로 처리해주는 함수입니다(map은 원본 리스트를 변경하지 않고 새 리스트를 생성합니다).

  • list(map(함수, 리스트))
  • tuple(map(함수, 튜플))

 

 

순서를 뒤집는 방법에는 어떤 방법이 있을까?

먼저 가장 간단한 방법은 값을 뒤쪽에서 빼서 새로운 곳에 넣는 것입니다.

n     : 1 2 3 4 5   

결과 : 

 

n     : 1 2 3 4  

결과 : 5 

 

n     : 1 2 3  

결과 : 5 4

 

n     : 1 2  

결과 : 5 4 3

 

n     : 1 

결과 : 5 4 3 2

 

n     : 

결과 : 5 4 3 2 1

 

 

또 다른 방법은 맨뒤와 맨 앞의 값을 서로 바꾸는 방법입니다.

 

n : 1 2 3 4 5   (1과 5를 바꿉니다.)

n : 5 2 3 4 1    (2와 4를 바꿉니다.)

n : 5 4 3 2 1

728x90
728x90

<나의 풀이>

def solution(N):
    answer = 0
    
    for n in str(N):
	    answer += int(n)
    return answer

문자열로 형 변환해서 푸는 방법

1. 입력된 N(정수형)을 문자로 형 변환한다.

2. 형 변환된 문자열의 길이만큼 반복하면서 각 자리 값을 갖고 온다.

3. 갖고 온 자리값을 숫자로 변환해 변수에 합한다.

 

알고리즘이 정해 졌으니 이제 코드로 표현해 보겠습니다.

먼저 숫자를 문자로 형 변환하는 함수는 str()입니다.

(참고로 int(), list(), tuple()과 같이 각 자료형 이름으로 만들어진 함수가 형 변환 함수입니다. )

 

<다른 풀이>

형 변환을 사용하지 않는 방법

앞에서 이야기한 것처럼 다른 언어에서는 형 변환이 조금 불편할 수도 있습니다.

그래서 이번에는 형 변환을 사용하지 않는 방법을 소개하겠습니다.

 

이 방법의 핵심은 바로 나누기와 나머지입니다.

먼저 정수 몫과 나머지를 구하는 연산자인 // 와 % 가 필요합니다. (코딩에서는 나머지 구하는 일이 은근히 많으니 % 연산자는 잘 기억해 두세요)

 

def solution(N):
    answer = 0

    while(N>0):
        answer+=(N%10)
        N=N//10

    return answer
  1. 123을 10으로 나눈 나머지를 구합니다.                 >> 3  (변수에 더함)
  2. 123을 10으로 나눈 정수 몫을 구합니다.                 >> 12 
  3. 12( 2. 의 결과 )를 10으로 나눈 나머지를 구합니다.  >> 2 ( 변수에 더함)
  4. 12를 10으로 나눈 정수 몫을 구합니다.                   >> 1 
  5. 1( 4. 의 결과 )을 10으로 나눈 나머지를 구합니다.    >> 1 ( 변수에 더함)
728x90
728x90
def solution(n):
    answer = 0
    for i in range(1,n+1):
        if n % i == 0: 
            answer += i
    return answer

 

728x90
728x90
def solution(num):
    if num % 2 == 0:
        return "Even"
    else:
        return "Odd"
728x90
728x90
def solution(arr):
    result = sum(arr) / len(arr)
    return result
728x90
728x90

문제

PRODUCT 테이블에서 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 MAX_PRICE로 지정해주세요.

SELECT MAX(PRICE) AS MAX_PRICE 
FROM PRODUCT;

 

728x90
728x90

<문제>

USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성해주세요.

SELECT COUNT(USER_ID) as USERS 
FROM USER_INFO 
WHERE JOINED LIKE "2021%" AND AGE >= 20 AND AGE <= 29;

 

<예시 출력>

USERS

3

이므로 문제에는 없다지만 >> as USERS << 를 써줘야 한다.

728x90
728x90

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

NAMETYPENULLABLE

ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.

 

SELECT ANIMAL_ID 
FROM ANIMAL_INS 
WHERE NAME IS NULL 
ORDER BY ANIMAL_ID ASC;
728x90

+ Recent posts