문제 설명

두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.

 

 
제한사항
  • 1 ≤ s1, s2의 길이 ≤ 100
  • 1 ≤ s1, s2의 원소의 길이 ≤ 10
  • s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
  • s1과 s2는 각각 중복된 원소를 갖지 않습니다.
 

 

입출력 예
 
s1 s2 s3
["a", "b", "c"] ["com", "b", "d", "p", "c"] 2
["n" , "omg"] ["m", "dot"] 0
 

입출력 예 설명

 

입출력 예 #1

  • "b"와 "c"가 같으므로 2를 return합니다.

입출력 예 #2

  • 같은 원소가 없으므로 0을 return합니다.
def solution(s1, s2):
    answer = len(set(s1) & set(s2))
    return answer

 

- intersection 불가능하고 '&'도 안 되어 set( )으로 묶으니 실행됨.

 

 

- set( ) :

   집합으로 만드는 함수

   순서 x(실행 시 마다 순서 변화), 중복 허용 x(중복 값 입력해도 알아서 삭제)

   

 

https://velog.io/@insutance/Python-set-%EC%9D%B4%EB%9E%80

 

[Python] set() 이란

python 'set( ) 함수' 정리

velog.io

 

 

 

 

 

문제 설명

정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.
 

제한사항
  • 1 ≤ n ≤ 10,000
  • 1 ≤ numlist의 크기 ≤ 100
  • 1 ≤ numlist의 원소 ≤ 100,000

 

입출력 예
 
n numlist result
3 [4, 5, 6, 7, 8, 9, 10, 11, 12] [6, 9, 12]
5 [1, 9, 3, 10, 13, 5] [10, 5]
12 [2, 100, 120, 600, 12, 12] [120, 600, 12, 12]

입출력 예 설명

 

 

 

입출력 예 #1

  • numlist에서 3의 배수만을 남긴 [6, 9, 12]를 return합니다.

입출력 예 #2

  • numlist에서 5의 배수만을 남긴 [10, 5]를 return합니다.

입출력 예 #3

  • numlist에서 12의 배수만을 남긴 [120, 600, 12, 12]를 return합니다.

 

 

 

 

def solution(n, numlist):
    answer = [i for i in numlist if i%n ==0]
    
    return answer

 

-  numlist에서 숫자를 하나씩 뽑아 n 으로 나눴을 때 나머지가 0인 수만 골라라

https://school.programmers.co.kr/learn/courses/30/lessons/120819

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 설명

 
머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
 

 

제한사항
  • 0 < money ≤ 1,000,000

 


 

 

입출력 예moneyresult

 

money result
5,500 [1, 0]
15,000 [2, 4000]

 


입출력 예 설명

 

입출력 예 #1

  • 5,500원은 아이스 아메리카노 한 잔을 살 수 있고 잔돈은 0원입니다.

입출력 예 #2

  • 15,000원은 아이스 아메리카노 두 잔을 살 수 있고 잔돈은 4,000원입니다.

 

def solution(money):
    
    i = int(money/5500)
    j = money%5500
    answer = [i, j]
    return answer

 

- int(money/5500) : 살 수 있는 잔 수

 

- money%5500 : 잔돈 = 나머지

 

https://school.programmers.co.kr/learn/courses/30/lessons/120813

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

문제 설명

정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.

 


 

제한사항

  • 1 ≤ n ≤ 100

 

입출력 예


 

n result
10 [1, 3, 5, 7, 9]
15 [1, 3, 5, 7, 9, 11, 13, 15]

 


 

입출력 예 설명

입출력 #1

  • 10 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9]를 return합니다.

입출력 #1

  • 15 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9, 11, 13, 15]를 return합니다

 

def solution(n):
    answer = [i for i in range(1,n+1) if i % 2 == 1]      
    return answer

 

- range(1, n+1)

  n이 홀수일 수도 있으니 n+1까지의 range를 지정   

 

- i % 2 == 1 

   홀수 : 2로 나누어서 나머지가 1이 남는다

 

https://school.programmers.co.kr/learn/courses/30/lessons/120811

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

문제 설명

중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.

 


 

제한사항

  • array의 길이는 홀수입니다.
  • 0 < array의 길이 < 100
  • -1,000 < array의 원소 < 1,000

 

입출력 예


 

array result
[1, ,2, 7, 10, 11] 7
[9, -1, 0] 0

 


 

입출력 예 설명

입출력 예 #1

  • 본문과 동일합니다.

입출력 예 #2

  • 9, -1, 0을 오름차순 정렬하면 -1, 0, 9이고 가장 중앙에 위치하는 값은 0입니다.

 

def solution(array):
    a = sorted(array)
    answer = a[int(len(a)/2)]
    return answer

 

1. array를 오름차순 정렬

   

   sorted(array)

 

2. 중앙값을 구하려면 len(a)/2 후,  round( )로 반올림해 3을 구하려 했으나

    파이썬 인덱싱을 하려면 a[2]가 되어야 하기 때문에 소숫점 자리를 제거

 

array result  
[1, ,2, 7, 10, 11] 7 len(a)/2 = 2.5
int(2.5) = 2
a[2]
[9, -1, 0] 0 len(a)/2 = 1.5
int(1.5) = 1
a[1]

https://school.programmers.co.kr/learn/courses/30/lessons/131536

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

재구매가 일어난 상품과 회원 리스트 구하기

 

 ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는   SQL문 작성. 결과는 회원 ID 기준으로 오름차순 정렬 & 회원 ID가 같다면 상품 ID 기준으로 내림차순 정렬

 

 

문제


다음은 어느 의류 쇼핑몰의 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블 입니다. ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냅니다. 동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다.




예시



예를 들어 ONLINE_SALE 테이블이 다음과 같다면


USER_ID 가 1인 유저가 PRODUCT_ID 가 3, 4인 상품들을 재구매하고, USER_ID 가 2인 유저가 PRODUCT_ID 가 4인 상품을 재구매 하였으므로, 다음과 같이 결과가 나와야합니다.


 

 

 

SELECT  
	USER_ID, PRODUCT_ID
FROM 
	ONLINE_SALE
GROUP BY 
	USER_ID, PRODUCT_ID
HAVING 
	COUNT(USER_ID) >= 2
    
ORDER BY USER_ID, PRODUCT_ID DESC;

 

 

재구매라면 2번 이상 USER_ID가 나와야 된다고 생각

'프로그래머스' 카테고리의 다른 글

Python] 배열의 유사도  (0) 2025.02.12
Python] n의 배수 고르기  (0) 2025.02.12
Python] 아이스 아메리카노  (0) 2025.02.12
Python] 짝수는 싫어요  (0) 2025.02.10
Python] 중앙값 구하기  (0) 2025.02.09

+ Recent posts