Category/빅데이터&파이썬

프로그래머스 알고리즘(약수의 개수와 덧셈, 문자열 다루기 기본, 삼총사, 비밀지도, 문자열 내 마음대로 정렬하기)

sumin 2023. 4. 11. 21:21
728x90
반응형
  • 1. 약수의 개수와 덧셈

작성 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def solution(left, right):
    answer = 0
    a = []
    b = 0
    for i in range(right-left+1):
        a.append(0)
        
    for i in range(left,right+1):
        for j in range(1,i+1):
            if i%j == 0:
                a[i-left] +=1
    
    for i in range(len(a)):
        if a[i]%2 ==0:
            b += left+i
        else:
            b -= left+i
cs

 

  • 2. 문자열 다루기 기본

작성 코드

1
2
3
4
5
6
7
def solution(s):
    answer = False
    if len(s) == 4 or len(s) == 6 :
         if s.isdigit() == True:
            answer = True
         
    return answer
cs

 

  • 3. 삼총사

작성 코드

1
2
3
4
5
6
7
8
9
from itertools import combinations
 
def solution(number):
    a = 0
    arr = list(combinations(number,3))
    for i in range(len(arr)):
        if sum(arr[i]) == 0:
            a +=1
    return a
cs

 

  • 4. [1차] 비밀지도

작성 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def solution(n, arr1, arr2):
    answer = []
    arr1_bin = []
    arr2_bin = []
    for i in range(n):
        arr1_bin.append(bin(arr1[i])[2:])
        arr2_bin.append(bin(arr2[i])[2:])
        arr1_bin[i] = ('0' * (n-len(arr1_bin[i]))) + arr1_bin[i]
        arr2_bin[i] = ('0' * (n-len(arr2_bin[i]))) + arr2_bin[i]
    
        tmp = ''
        for p in range(n):
            if arr1_bin[i][p] == '1' or arr2_bin[i][p] == '1':
                tmp += '#'
            elif arr1_bin[i][p] == '0' and arr2_bin[i][p] == '0':
                tmp += ' '
        answer.append(tmp)
        
    return answer
cs

 

  • 5. 문자열 내 마음대로 정렬하기

작성 코드

1
2
3
4
5
def solution(strings, n):
    answer = []
    
    strings.sort()
    return sorted(strings, key=lambda x : x[n])
cs
728x90
반응형