Carpe diem

NLP 관련 석사 과정 재학 중 (2022.03 ~ )

프로그래머스 51

전화번호 목록

[문제] 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. · 구조대: 119 · 박준영 : 97 674 223 · 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. · 제한사항 1. phone_book의 길이는 1이상 1,000,000이하입니다. 2. 각 전화번호의 길이는 1이상 20이하입니다. 3. 같은 전화번호가 중복해서 들어있지 않습니다...

타겟 넘버

[문제] n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. 1. -1+1+1+1+1 = 3 2. +1-1+1+1+1 = 3 3. +1+1-1+1+1 = 3 4. +1+1+1-1+1 = 3 5. +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타켓 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return하도록 solution 함수를 작성해주세요. · 제한사항 1. 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 2. 각 숫자는 1이상 50이하인 자연수입니다. 3. 타겟 넘버는 ..

이상한 문자 만들기

[문제] 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한사항 · 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 합니다. · 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 s return "try hello world" "TrY HeLlo WoRlD" [풀이] 1. Me def solution(s): split_s = s.split(" ") answer = [] for i in split_s: if i == '': answer.appe..

제일 작은 수 제거하기

[문제] 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]이면 [-1]을 리턴 합니다. 제한사항 · arr은 길이 1이상인 배열입니다. · 인덱스 i, j에 대해 i != j이면 arr[i] != arr[j]입니다. 입출력 예 arr return [4, 3, 2, 1] [4, 3, 2] [10] [-1] [풀이] 1. Me def solution(arr): arr.remove(min(arr)) return arr or [-1] 처음에는 리스트를 내림차순 정렬하고, 리스트 슬라이싱을 이용하여..

스킬트리

[문제] 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요. 제한사항 · 스..

소수 만들기

[문제] 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 · nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. · nums의 각 원소는 1이상 1,000이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예 nums result [1, 2, 3, 4] 1 [1, 2, 7, 6, 4] 4 [풀이] 1. Me def isPrime(number): if number in (0, 1): return False for i in range(2, nu..

올바른 괄호

[문제] 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 · "()()" 또는 "(()()"는 올바른 괄호입니다. · ")()(" 또는 "(()("는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 · 문자열 s의 길이: 100,000이하의 자연수 · 문자열 s는 '(' 또는 ')'로만 이루어져 있습니다. 입출력 예 s answer "()()" true "(())()" true ")()(" false "(()(" false [풀이] 1..