반응형

 

카드 뭉치 소스 코드

def solution(cards1, cards2, goal):
    answer = 'Yes'
    cards1_idx = 0
    cards2_idx = 0
    
    for word in goal:
        if cards1_idx != len(cards1) and word == cards1[cards1_idx]:
            # A and B -> A를 먼저 판별 / A에서 통과하면 B를 판별 / A에서 통과하지 않으면 B까지도 가지 않습니다.
            cards1_idx += 1
        else: # 첫번째 카드뭉치에 없다면
            if cards2_idx != len(cards2) and word == cards2[cards2_idx]:
                cards2_idx += 1
            else: # 두번째 카드뭉치에도 없다면
                answer = 'No'
                break
    
    return answer
반응형
반응형

 

안녕하세요 Henry입니다~

 

오늘은 프로그래머스 Level 2 문제 중에 최댓값과 최솟값이라는 문제를 풀어보았습니다.

 

왠지 프로그래머스 Level 2 문제 중 가장 쉬운 난이도를 가진 문제일 것 같은데요,

 

저는 정렬과 문자열 인덱싱을 사용하여 문제를 풀었습니다.

 

def solution(s: str) -> str:
    sorted_ls = sorted(s.split(' '), key=lambda x: int(x))
    return sorted_ls[0] + ' ' + sorted_ls[-1]

 

아래는 문제 풀이 영상입니다.

https://youtu.be/4IFhPzwipKA

 

반응형
반응형

 

안녕하세요 Henry입니다~

 

오늘은 프로그래머스의 Level 2 문제인 최솟값 만들기 문제를 풀어보았습니다.

 

이 문제의 핵심은 두 리스트의 값을 곱하여 최솟값이 나오게 하기 위해,

각 리스트의 최댓값과 최솟값을 각각 곱해주어야 한다는 아이디어에서 시작됩니다.

 

저는 sorted라는 파이썬의 내장함수를 사용하였습니다.

제가 문제를 푼 코드입니다.

from typing import List

def solution(A: List[int], B: List[int]) -> int:
    answer = 0
    A = sorted(A)
    B = sorted(B, reverse=True)
    length_of_list = len(A)
    for i in range(length_of_list):
        answer += A[i]*B[i]

    return answer

 

문제 풀이 영상입니다.

https://youtu.be/wfR2srFxxJU

 

- YouTube

 

www.youtube.com

 

반응형
반응형

 

안녕하세요 Henry입니다~

 

오늘은 프로그래머스 문제 중에 비교적 간단한 Level 1문제를 풀어보았습니다.

 

문자열을 다루는 방법과, list comprehension을 사용하면 문제를 깔끔하게 해결할 수 있으실 것 같은 문제입니다.

 

아래는 저의 코드입니다.

def solution(n):
    answer = list(str(n)[::-1])
    return [int(x) for x in answer]

 

아래는 문제 풀이 영상입니다.

https://youtu.be/yww5zVu6Go4

 

- YouTube

 

www.youtube.com

 

반응형
반응형

 

안녕하세요 Henry입니다~

 

오늘도 코딩테스트 문제를 한 문제 풀어보았습니다.

프로그래머스의 Level 1 문제인데요,

 

약수의 합을 구하는 문제입니다.

문제를 풀면서 가장 중요했던 부분은, 약수인지 여부를 탐색하는 기준으로 

해당 index 값의 제곱값이 대상 정수를 넘지 않는 범위에서만 확인을 해주어야 한다는 것입니다.

 

아래는 제가 문제를 푼 코드입니다.

def solution(n):
    answer = 0
    current_number = 1
    while current_number*current_number < n:
        if n%current_number == 0:
            answer += current_number
            answer += n/current_number
        current_number += 1
            
    if current_number*current_number == n:
        answer += current_number
    return answer

 

아래는 문제 풀이 영상입니다.

https://youtu.be/9dd8TBquTxk

 

반응형
반응형

 

안녕하세요 Henry입니다~

 

오늘은 2019 카카오 개발자 겨울 인턴십에 출제되었던 튜플이라는 문제를 풀어보았습니다.

 

프로그래머스의 Level 2 난이도의 문제인데요,

 

문자열을 얼마나 자유자재로 다룰 수 있는지에 대한 능력을 요구하는 문제였습니다.

 

아래는 저의 코드입니다.

 

from typing import List

def solution(s: str) -> List[int]:
    answer = []
    s_list = s[2:-2].split('},{')
    sorted_list = sorted(s_list, key=lambda x: len(x))
    for l in sorted_list:
        ls = l.split(',')
        answer.append(list(set(ls)-set(answer))[0])
    return [int(i) for i in answer]

 

문제 풀이 영상입니다.

https://youtu.be/cjQFj3KVOEQ

 

- YouTube

 

www.youtube.com

 

반응형
반응형

 

안녕하세요 Henry입니다~

 

오늘도 코딩테스트 문제를 한문제 풀어보았습니다.

 

오늘은 프로그래머스의 Level 1 난이도의 문제인 평균 구하기 문제를 풀어보았습니다.

 

정답률이 80%가 넘는 만큼 간단하게 푸실 수 있는 문제이니,

 

가벼운 마음으로 접근하셔도 좋을 것 같습니다.

 

아래는 저의 코드입니다.

 

from typing import List

def solution(arr: List[int]) -> float:
    return sum(arr)/len(arr)

 

문제 풀이 영상입니다.

https://youtu.be/1vrqVsWgoeA

 

반응형
반응형

 

안녕하세요 Henry 입니다

오늘은 올바른 괄호 라는 문제를 풀어보았습니다.
프로그래머스에서 Level 별로 문제 난이도가 정해져 있는데,
이 문제는 Level 2에 속해있는 문제입니다.

저는 문자를 숫자로 치환한 뒤에 덧셈 연산을 통해 문제를 풀어보았습니다.

아래는 저의 코드입니다.

 

str_dict = {"(": 1, ")": -1}

def solution(s):
    current_value = 0
    for i in s:
        current_value += str_dict[i]
        if current_value < 0:
            return False
    return True if current_value == 0 else False

 

해당 문제에 대한 강의입니다.

https://youtu.be/GJuDfJlrbJI

반응형

+ Recent posts