목록분류 전체보기 (25)
DataScience

● 스택[Stack] : 끝에서만 자료를 넣고 뺄 수 있는 선형 자료구조 스택이란 프링글스의 과자를 위에서부터 꺼내 먹는 것처럼 삽입과 삭제 연산이 후입선출(LIFO)로 이뤄지는 자료구조를 말합니다. 위의 그림을 보면 empty stack에 새값이 하나씩 들어가고, 스택에서 값을 빼낼 때는 제일 위에 있던 값이 나오게 되는 것을 볼수 있다. 파이썬에서는 리스트를 이용하여 쉽게 스택을 구현할수 있다. 1. 스택의 특징 1. 후입선출은 삽입과 삭제가 한 쪽으로만 일어나는 특징을 가지고 있다. 2. 스택에서 데이터에 바로 접근이 가능하기 때문에 데이터 삽입, 삭제의 시간 복잡도는 O(1) 이다. 3. 파이썬에서 스택을 사용할때 별도의 라이브러리가 필요없다. 4. 깊이 우선 탐색[DFS], 백트래킹 등의 알고리..

자료구조 : 데이터를 효율적으로 저장, 접근, 수정하기 위한 그릇을 뜻하며, 즉 데이터를 표현하고 관리하고 처리하기 위한 구조라로 생각하면 된다. 자료구조에는 다음 그림과 같이 두 가지 유형이 있다. 1. Linear data structure : 원소들이 메모리 공간 측면에서 선형적으로 연결되있는 경우, 즉 순서가 있는 데이터의 모임 2. Non-linear data structure : 원소들이 순서 개념으로 정돈되어 있지 않은 경우, 즉 비연속적으로 연결되 있는 데이터의 모임 ● 배열[Array] : 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 배열이란 연관된 데이터를 하나의 변수에 그룹핑해서 관리하기 위한 방법입니다. 특히 배열의 값은 인덱스를 통해 참조할 수 있으며, 선언한 자료형의 ..

1. List 1.1. (+), (*) 등의 기호 : 가장 기본적인 리스트의 연산 방법이지만 (+)등의 기호를 사용하면 리스트의 id 값이 변하는 것이 아니라 두 리스트가 더해진 새로운 리스트가 반환된다. 즉 기준 리스트에는 변화가 없기 때문에 기존 리스트를 사용하기 위해서는 기존 리스트에 업데이트 형식으로 다시 값을 할당해야 한다. a = ["banana", "cherry", "apple"] a + ["peach"] # (+) 사용 >>> ['banana', 'cherry', 'apple', 'peach'] a * 2 # (*) 사용 >>> ['banana', 'cherry', 'apple', 'banana', 'cherry', 'apple'] 1.2. append() : 기존 리스트에 한개의 값을 추..
1. reverse() : [return 값 없음, 원본 변경] 파이썬에 내재되어 있는 순서를 뒤에서부터 변경해주는 가장 기본적인 방법이다. reverse()를 사용하면 리스트에 들어있는 요소들을 반대로 출력하여 사용이 가능하다. 특히 코드를 단순화하고 최대한 간결하게 사용하기 위해서는 이 방법이 제일 적합하다. 다만, 주의할 점은 리스트객체에서 직접 변경을 하였기에 reverse() 메서드를 걸고 나서는 출력이 안 나타나고, 직접 그 리스트를 출력을 해야 변경된 것을 볼 수 있다. a = ["A", "B", "a", "b", 1, 2, 3, 4, 32, 5, 10] b = ["A", "B", "a", "b", 1, 2, 3, 4, 32, 5, 10] # reverse 메소도를 거는 경우 a = a.re..

문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든 원소는 문자열로 이루어져 있습니다. 모든 문자열의 길이는 1 이상 20 이하인..

문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한 사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예#1 "leo"는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주..

문제 설명 문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요. 제한 사항 1 ≤ my_string ≤ 1,000 my_string은 대문자, 소문자, 공백으로 구성되어 있습니다. 대문자와 소문자를 구분합니다. 공백(" ")도 하나의 문자로 구분합니다. 중복된 문자 중 가장 앞에 있는 문자를 남깁니다. 입출력 예#1 "people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다. 입출력 예#2 "We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다. 입출력 예시 my_string..

문제 설명 어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요. 제한 사항 1 ≤ n ≤ 10 1 ≤ t ≤ 15 입출력 예#1 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다. 입출력 예#2 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, 15시간 후엔 229376마리가 되며, 따라서 229,376을 return합니다. 입출력 예시 n t result 2 10 2048 7 15 229,376 풀이 및 코드 리뷰 내가 제출한 답 def solution(n, t)..