Category/빅데이터&파이썬

프로그래머스 알고리즘( K번째수/ 숫자 문자열과 영단어/ 최소직사각형/ 크기가 작은 부분 문자열/ 두 개 뽑아서 더하기/ 콜라 문제/ 푸드 파이트 대회

sumin 2023. 4. 14. 14:17
728x90
반응형
  • 1. K번째수

작성 코드

1
2
3
4
5
6
7
8
9
10
def solution(array, commands):
    answer = []
    
    for i in range(len(commands)):
        array1 = array
        array1 = array1[commands[i][0]-1:commands[i][1]]
        array1.sort()
        answer.append(array1[commands[i][2]-1])
    
    return answer
cs

 

  • 2. 숫자 문자열과 영단어

 

작성 코드

1
2
3
4
5
6
7
8
9
10
11
def solution(s):
    answer = 0
    
    en = ['zero','one','two','three','four','five','six','seven','eight','nine']
    answer =''
    
    for i,num in enumerate(en):
        if num in s:
            s=s.replace(num,str(i))
        
    return int(s)
cs

 

  • 3. 최소직사각형

작성 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def solution(sizes):
    answer = 0
    a = 0
    b = 0
    for i in range(len(sizes)):
        sizes[i].sort()
    
    for i in range(len(sizes)):
        if sizes[i][0> a:
            a = sizes[i][0]
        if sizes[i][1> b:
            b = sizes[i][1]
    answer = a*b
    
    return answer
cs

 

  • 4. 크기가 작은 부분 문자열

작성 코드

1
2
3
4
5
6
7
8
9
10
11
def solution(t, p):
    answer = 0
    a = []
    for i in range(len(t)):
        if len(t[i:i+len(p)]) == len(p):
            a.append(t[i:i+len(p)])
    for i in range(len(a)):
        if a[i] <= p:
            answer += 1
            
    return answer
cs

 

  • 5. 두 개 뽑아서 더하기

작성 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from itertools import combinations
 
def solution(numbers):
    answer = []
    a=[]
    b=[]
    c=[]
    a = list(combinations(numbers,2))
    
    for i in range(len(a)):
        b.append(a[i][0]+a[i][1])
        
    b.sort()
    
    for i in range(len(b)):
        if b[i] not in c:
            c.append(b[i])
    return c
cs

 

  • 6. 콜라 문제

작성 코드

1
2
3
4
5
6
7
8
9
10
11
12
def solution(a, b, n):
    answer = 0
    c = 0 
    for i in range(n*10):
        if n >= 2:
            if n >= a :
                c += (n//a)*
                n = n - (n//a)*+ (n//a)*
            else:
                break
            
    return c
cs

 

  • 7. 푸드 파이트 대회

작성 코드

1
2
3
4
5
6
7
def solution(food):
    answer = ''
    for i in range(1,len(food)):
        answer += str(i)*(food[i]//2)
    temp = ''.join(reversed(list(answer)))
    
    return(answer + '0' + temp)
cs

 

 

728x90
반응형