Carrot

python 12

[Python] Level 2. [3차] 방금그곡

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 네오가 기억하는 멜로디와 일치하는 곡을 찾아낸다. ✅ 한 음악을 반복해서 재생할 때도 있어서 곡의 끝부분과 처음 부분이 이어진 멜로디를 기억할 수도 있다. ✅ 한 음악을 중간에 끊을 경우 원본 음악을 들은 거라도 네오가 기억한 멜로디와 다를 수 있다. ✅ 멜로디와 일치하는 곡이 여러 개라면 그 중 재생 시간이 가장 긴 음악을 답으로 구한다. 문제 풀이 알고리즘 유형 구현 풀이 설명 1. 재생 시간 구하기 멜로디와 일치하는 곡이 여러 개인 경우를 생각해야 하므로, 곡의 시작 시각과 끝난 시각 사이의 ..

[Python] Level 2. [3차] 파일명 정렬

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 files가 주어질 때, head / number / tail로 구성되어 head를 대소문자 상관 없이 오름차순으로 정렬하고, 만약 동일한 경우 number를 오름차순으로 정렬한다. ✅ head는 숫자가 아닌 문자로 구성되어 있다. ✅ number는 숫자이며, 0011과 같이 앞이 0으로 시작할 수도 있다. 문제 풀이 (1) 사용한 알고리즘 re.split(), sort() (2) 시간복잡도 files의 길이를 n, 파일명 길이를 m이라 할 때 O(n * m) (3) 문제 설명 1. files에서 ..

[Python] Level 3. 가장 먼 노드

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 1 ~ n번까지 번호가 적혀 있는 n개의 노드가 간선으로 연결되어 있을 때, 1번 노드에서 가장 멀리 떨어져 있는 노드의 개수를 구한다. 문제 풀이 (1) 사용한 알고리즘 BFS (2) 시간복잡도 O(n) (3) 설명 1. 최대 거리를 기억하는 변수(max_dist) & 1번 노드와의 최단거리를 담은 리스트(dist) 초기화 max_dist = 0 dist = [0 for _ in range(n + 1)] ✅ 편의를 위해 dist의 0번 인덱스는 사용하지 않으며, dist[k]는 1번 노드에서 k번..

[Python] Level 3. 단어 변환

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 begin 단어와 target 단어가 주어질 때, words에 있는 단어들을 조합해 begin에서 target으로 변환할 수 있는 최소 단계를 구한다. ✅ 단, 단어 사이에 한 개의 알파벳만 변환할 수 있다. 문제 풀이 (1) 사용한 알고리즘 BFS (2) 시간복잡도 O(n2) (3) 설명 1. 변환할 수 있는 다음 단어 구하기 def getNextWord(curr, words): for word in words: cnt = 0 for c, w in zip(curr, word): if c != w:..

[Python] 1309. Decrypt String from Alphabet to Integer Mapping

Decrypt String from Alphabet to Integer Mapping - LeetCode Can you solve this real interview question? Decrypt String from Alphabet to Integer Mapping - You are given a string s formed by digits and '#'. We want to map s to English lowercase characters as follows: * Characters ('a' to 'i') are represented by ('1' leetcode.com 문제 설명 You are given a string s formed by digits and '#'. We want to ma..

Algorithm/LeetCode 2023.11.21

[Python] 2485. Find the Pivot Integer

Find the Pivot Integer - LeetCode Can you solve this real interview question? Find the Pivot Integer - Given a positive integer n, find the pivot integer x such that: * The sum of all elements between 1 and x inclusively equals the sum of all elements between x and n inclusively. Return th leetcode.com 문제 설명 n이 입력으로 주어질 때, 1 ~ x의 합과 x ~ n의 합이 같아지는 x를 구하는 문제. 조건을 만족하는 x가 없다면 -1을 리턴한다. 문제 풀이 (1) 사..

Algorithm/LeetCode 2023.11.21

[Python] 리스트(List)의 여러 메소드

목차 1. 리스트(List)란? 2. 리스트의 선언 3. 아이템 추가 4. 아이템 삭제 5. 리스트 슬라이싱 (List slicing) 6. 특정 아이템의 인덱스 찾기 7. 리스트 정렬 리스트(List)란? 다른 언어와 마찬가지로 여러 개의 데이터들을 순서대로 나열하여 인덱스로 접근할 수 있는 자료구조, 즉 배열을 파이썬에선 리스트라고 표현한다. C언어와 같은 정적 배열이 아닌, 동적 배열이기 때문에 아이템을 쉽게 추가하거나 삭제하기 용이하다. 1. 선언 # 정수형 리스트 my_list1 = [1, 30, 12] # boolean형 리스트 my_list2 = [True, True, False] # string형 리스트 my_list3 = ['duck', 'hello', 'python'] # 여러 타입의 ..

Python 2023.11.16

[Python] 문자열 내 따옴표 표현하기

목차 1. 다른 따옴표 사용하기 2. 백슬래시(\) 사용하기 파이썬은 기본적으로 문자열을 표시하기 위해 작음따옴표(또는 큰따옴표)로 감싸기 때문에 문자열 내에 따옴표를 표기하고 싶은 경우에 어떻게 해야할까? # Error ❌ print("Hello "My Name" is Duck!") 1. 다른 따옴표 사용하기 문자열 내에 한 종류의 따옴표만 사용한다면 그것과 다른 따옴표로 문자열을 감싼다. # ✅ print('Hello "My Name" is Duck!') # Hello "My Name" is Duck! # ✅ print("Hello 'My Name' is Duck!") # Hello 'My Name' is Duck! 2. 백슬래시(\) 사용하기 # ✅ print("Hello \"My Name\" is..

Python 2021.02.02