Algorithm (96) 썸네일형 리스트형 [프로그래머스] JadenCase 문자열 만들기(python) 프로그래머스, JadenCase 문자열 만들기 TL;DR 문자열 문제 분석 1. 주어진 문자열 s를 JadenCase로 바꾼 문자열을 리턴하는 함수를 완성하라. 2. s는 길이가 1 이상인 문자열이다. 3. s는 알파벳과 공백문자로 이루어져 있다. 4. 첫 문자가 영문이 아닐때는 이어지는 영문은 소문자로 쓴다. - 1 : 해결해야 하는 문제에 대해서 설명하고 있다. - 2 : 문제에서 주어지는 입력 조건의 제한에 대해서 설명하고 있다. - 3 ~ 4 : 문제를 해결할 때 참고해야 하는 조건에 대해서 설명하고 있다. 입출력 형태 - 주어진 입력을 구성하고 있는 단어들의 첫 번째 글자를 대문자로 바꾼 결과를 반환한다. 풀이 def solution(s): return ' '.join([word.capitali.. [리트코드] Odd Even Linked List(python) 리트코드, Odd Even Linked List_홀짝 연결리스트 TL;DR 연결리스트(Linked List)를 활용할 수 있는지 문제 분석 1. 주어진 연결리스트에 대해서 홀수 인덱스끼리 묶은 연결리스트와 짝수 인덱스끼리 묶은 연결리스트로 재정렬된 연결리스트를 반환하라. 2. 첫번째 노드부터 홀수, 두번째 노드부터 짝수로 가정한다. 3. 홀수와 짝수 내에서 입력에 주어진 순서를 유지해야 한다. 4. O(1)의 공간복잡도와 O(n)의 시간복잡도로 해결해야 한다. - 1 : 해결해야 하는 문제 조건에 대해 설명하고 있다. - 2 ~ 3 : 세부 조건에 대해서 말하고 있다. 입출력 형태 파트에서 이 조건에 대해서 살펴본다. - 4 : 문제 해결 시 만족해야 하는 조건에 대해서 설명하고 있다. 리스트와 같은 변.. [리트코드] Swap Nodes in Pairs(python) 리트코드, Swap Nodes in Pairs_인접 노드 바꾸기 TL;DR 연결리스트(LinkedList)를 활용할 수 있는지 문제 분석 1. 주어진 연결 리스트에 대해서 인접한 노드들을 바꾸고, 바뀐 연결 리스트를 반환한다. 2. 각 노드의 값을 바꾸어 문제를 해결하면 안 된다. - 1 : 해결해야 하는 문제에 대해서 설명하고 있다. 노드들을 둘씩 짝지어 짝지은 노드를 서로 바꾼 연결리스트를 반환해야 한다. - 2 : 제한조건이다. 연결리스트의 노드가 갖고 있는 값을 바꾸어 문제를 해결하면 안 된다. 입출력 형태 - 주어진 연결리스트의 노드를 짝지으면 1 - 2, 3 - 4와 같이 짝을 지을 수 있다. - 짝지은 노드들을 맞바꾼 연결리스트를 반환하면 된다. 풀이 # Definition for singl.. [프로그래머스] 최솟값 만들기(python) 프로그래머스, 최솟값 만들기 TL;DR 주어진 문제 조건을 구현(implementation)할 수 있는지 문제 분석 1. 길이가 같은 자연수로 이루어진 배열 A,B에서 두 수를 뽑아 곱해서 누적하여 더한다. 2. 이 때, 더한 결과가 최소가 되는 값을 반환한다. - 1 ~ 2 : 해결해야 하는 문제 조건에 대해서 설명하고 있다. 입출력 형태 - 입출력 예시를 확인해보면 문제 해결을 위한 접근방법이 떠오른다. - 예시 1번은 1 * 5, 2 * 4, 4 * 4를 해서 더한 값이 최소가 된다. - 예시 2번은 1 * 4, 2 * 3을 해서 더한 값이 최소가 된다. - 즉, A에서 작은 원소와 B에서 큰 원소 순서대로 곱해서 더한 값이 최소값이 되는 것이다. 풀이 def solution(A,B): A.sort.. [프로그래머스] N개의 최소공배수(python) 프로그래머스, N개의 최소공배수 TL;DR 주어진 문제 조건에 따라 구현(implementation)할 수 있는지 유클리드 호제법 문제 분석 1. n개의 숫자를 담은 배열 arr에 대해 이 수들의 최소 공배수를 반환하는 함수를 작성하라. - 해결해야 하는 문제 조건에 대해서 말하고 있다. - 최소공배수이기 때문에, 배열을 순회하며 최소공배수를 배열 내의 숫자 간의 최소공배수로 갱신하면 풀 수 있다. 입출력 형태 - 숫자들이 저장된 arr이 입력으로 주어진다. - 예시 1번을 확인해보면 - 2와 6의 최소공배수는 6이다. - 6과 8의 최소공배수는 24이다. - 24와 14의 최소공배수는 168이다. - 이와 같이 배열에서 두 수 간의 최소공배수를 구한 뒤 다음 원소들과 최소공배수로 갱신해나가면 문제를 해.. [프로그래머스] 최대값과 최소값(python) 프로그래머스, 최대값과 최소값 TL;DR 주어진 문자열을 처리할 수 있는지 문제 분석 1. 공백으로 구분된 숫자들이 저장된 문자열 s에서 최소값과 최대값을 찾아 "(최소값) (최대값)" 형태의 문자열을 반환해야 한다. 2. s에는 둘 이상의 정수가 공백으로 구분되어 있다. - 해결해야 하는 문제와, 조건을 제시하고 있다. 입출력 형태 - 숫자들이 주어진 문자열 s에서 최소값과 최대값을 찾아서 하나의 문자열로 반환하면 된다. 풀이 def solution(s): numbers = sorted([int(i) for i in s.split()]) return str(numbers[0]) + ' ' + str(numbers[-1]) - 주어진 문자열을 공백 문자를 기준으로 나누어, 정수형으로 변환한 후 배열에 담.. [리트코드] Add Two Numbers(python) 리트코드, Add Two Numbers_두 수 더하기 TL;DR 연결 리스트(Linked List) 문제를 해결할 수 있는지 문제 분석 1. 음수가 아닌 정수를 표현하는 비어 있지 않은 두 개의 연결 리스트가 주어진다. 2. 숫자들은 연결 리스트에 거꾸로 삽입되어 있고, 각 노드는 자리수를 포함하고 있다. 3. 두 숫자를 더한 결과를 링크드 리스트에 담아 반환한다. 4. 0 하나만 있는 것을 제외하고 0으로 시작하는 경우는 없다. - 1 ~ 4 : 해결해야 하는 문제 조건에 대해서 설명하고 있다. 두 개의 숫자가 역으로 연결 리스트에 저장되어 있다는 것에 주목해야 한다. 입출력 형태 - 예시 1 - L1이 나타내는 수는 342, L2가 나타내는 수는 465이다. - 두 수를 더한 결과인 807을 연결 리.. [리트코드] Happy Number(python) 리트코드, Happy Number_해피 넘버 TL;DR 구현(Implementation) 문제 분석 1. 주어진 숫자 n이 해피 넘버인지 아닌지 판별하는 알고리즘을 작성하라. 2. 해피 넘버는 아래와 같은 과정을 거쳐 얻게 된다. 2-1. 주어진 숫자의 각 자리수를 제곱하여 더한다. 2-2. 2-1 과정을 1이 될때까지 반복하거나, 1을 포함하고 있지 않는 주기로 반복된다. 3. 해피 넘버라면 True를, 아니라면 False를 반환한다. - 1, 3 : 해결해야 하는 문제에 대해서 말하고 있다. - 2 : 알고리즘 구현에 필요한 해피 넘버에 대해서 설명하고 있다. 입출력 형태 - 주어진 숫자 n에 대해서 각 자리수를 제곱하여 더한 숫자를 만든다. - 만들어진 숫자에 대해서 1이 나올 때까지 반복한다. 풀.. 이전 1 ··· 6 7 8 9 10 11 12 다음