본문 바로가기
💻 하나씩 차곡차곡/프로그래머스 (Python)

코딩 기초 트레이닝 Day08 - 간단한 논리연산, 주사위 게임3, 글자 이어 붙여 문자열 만들기, 9로 나눈 나머지, 문자열 여러 번 뒤집기

by 뚜루리 2023. 10. 16.
728x90
320x100

간단한 논리연산

def solution(x1, x2, x3, x4):
    return ((x1 or x2) and (x3 or x4))

 

 

주사위 게임3

def solution(a, b, c, d):
    
    # set : 중복과 순서가 없음.
    nums = {a, b, c, d};
        
    # 네 주사위에 적힌 숫자가 모두 다르다면 최소값 return
    if len(nums) == 4:
        return min(nums)
    
    # 딕셔너리 : key, value 형태
    # 주사위의 값이 몇번 나왔는지 딕셔너리 형태 정리
    count = {}
    for num in (a, b, c, d):
        count[num] = count.get(num, 0) + 1
        
    # 네 주사위에서 나온 숫자가 모두 같을 때
    if len(nums) == 1:
        return nums.pop() * 1111
    
    # 네 주사위의 나온 숫자가 2개 이면서
    elif len(nums) == 2:
        if 3 in count.values(): # value 값이 3인 것
            p = [k for k, v in count.items() if v == 3][0]
            q = [k for k in nums if k != p][0]
            return (10 * p + q) ** 2
        else:
            p, q = count.keys()
            return (p + q) * abs(p - q)
    else:
        p = [k for k, v in count.items() if v == 2][0]
        q, r = [k for k in nums if k != p]
        return q * r

 

글자 이어 붙여 문자열 만들기

def solution(my_string, index_list):
    answer = ''
    
    for i in range(len(index_list)):
        answer += my_string[index_list[i]]
        
    return answer

 

 

9로 나눈 나머지

def solution(my_string, index_list):
    answer = ''
    
    for i in range(len(index_list)):
        answer += my_string[index_list[i]]
        
    return answer

 

 

문자열 여러 번 뒤집기

def solution(my_string, queries):
    for start, end in queries:
        my_string = my_string[:start] + my_string[start:end+1][::-1] + my_string[end+1:]
    return my_string

 

728x90
320x100