개발노트

[Python] 코테 리마인드하기 본문

알고리즘, PS

[Python] 코테 리마인드하기

mroh1226 2024. 5. 23. 18:12
반응형

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def findAnswer(n):
    """
    주어진 숫자 n이 소수인지 확인하는 함수.
    소수인 경우 True를 반환하고, 그렇지 않은 경우 False를 반환합니다.
    """
    if n <= 1:
        return False  # 1 이하의 숫자는 소수가 아님
    for i in range(2, n):
        if n % i == 0:
            return False  # n이 i로 나누어 떨어지면 소수가 아님
    return True  # 소수인 경우

def solution(list):
    """
    주어진 리스트에서 세 숫자의 합이 소수인 경우의 수를 찾는 함수.
    """
    answer = 0  # 소수의 합인 경우의 수를 저장할 변수
    # 리스트에서 세 숫자를 선택하는 모든 경우의 수를 계산
    for i in range(0, len(list) - 2):
        for j in range(i + 1, len(list) - 1):
            for k in range(j + 1, len(list)):
                # 세 숫자의 합을 계산
                sum_value = list[i] + list[j] + list[k]
                # 합이 소수인지 확인
                if findAnswer(sum_value):
                    answer += 1  # 소수인 경우 카운트 증가
    return answer  # 최종 카운트 반환

# 주어진 리스트
list = [1, 2, 5, 6, 9, 11, 23, 22]

# 결과 출력
print(solution(list))

 

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def trans(s):
    """
    이진 문자열 s를 변환하여 '0'을 제거한 후, 남은 문자열의 길이를 이진수로 변환합니다.
    """
    # '0'을 제거한 문자열 생성
    s = s.replace('0', '')
    # 길이를 이진수로 변환
    #[2:]: 이진수 문자열의 0b 접두사를 제거하고 순수한 이진수 부분만 반환합니다.
    return bin(len(s))[2:]

def solution(s):
    num_trans = 0
    num_remove = 0

    while len(s) > 1:
        # '0'의 개수를 셈
        num_zero = s.count('0')
        # 제거한 '0'의 총 개수 누적
        num_remove += num_zero
        # '0'을 제거한 문자열의 길이를 이진수로 변환
        s = trans(s)
        # 변환 횟수 증가
        num_trans += 1

    return [num_trans, num_remove]

 

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

n= 5
arr1 = [9,20,28,18,11]
arr2 = [30,1,21,17,28]

def solution(n, arr1, arr2):
    answer = []
    for i in range(n):
        num_or = str(format(arr1[i] |arr2[i],'b'))
        num_or = num_or.replace('0',' ')
        num_or = num_or.replace('1','#')
        while len(num_or) < n:
            num_or = ' ' + num_or
        
        answer.append(num_or)
    return answer

print(solution(n,arr1,arr2))

 

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import sys
import collections

def solution(s):
    answer = -1
    stack =[]
    if len(s) % 2 != 0 or len(s) == 0:
        return 0
    for c in s:
        if len(stack) == 0 or stack[-1] != c:
            stack.append(c)
        else :
            stack.pop()
    if len(stack) == 0:
        answer = 1
    else:
        answer = 0
            
    return answer

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def solution(s):
    answer = -1
    stack =[]
    if len(s) % 2 != 0 or len(s) == 0:
        return False
    for c in s:
        if c == '(':
            stack.append(c)
        elif c == ')' and len(stack) != 0:
            stack.pop()
        else:
            return False
    if len(stack) ==0:
        answer = True
    else:
        answer = False            
    return answer

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def solution(s):
    dic ={}
    dic["zero"] = "0"
    dic["one"] = "1"
    dic["two"] = "2"
    dic["three"] = "3"
    dic["four"] = "4"
    dic["five"] = "5"
    dic["six"] = "6"
    dic["seven"] = "7"
    dic["eight"] = "8"
    dic["nine"] = "9"
    dic["zero"] = "0"
    dic["one"] = "1"
    dic["two"] = "2"
    dic["three"] = "3"
    dic["four"] = "4"
    dic["five"] = "5"
    dic["six"] = "6"
    dic["seven"] = "7"
    dic["eight"] = "8"
    dic["nine"] = "9"
    
    for key,value in dic.items():
        s = s.replace(key,value)
    answer = s
    return int(answer)

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def solution(participant, completion):
    answer = ''
    dic = {}
    
    for player in participant:
        if  player in dic:
            dic[player] += 1
        else:
            dic[player] = 1
            
    for complete in completion:
        dic[complete] -= 1
    
    for key,value in dic.items():
        if dic[key] != 0:
            answer = key
    
    return answer

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def solution(clothes):
    answer = 1
    dic = {}
    for item in clothes:
        if item[-1] in dic:
            dic[item[-1]] += 1
        else:
            dic[item[-1]] = 1
    for key,value in dic.items():
        answer = answer *(1+value)
    
    return answer-1
반응형
Comments