본문 바로가기

분류 전체보기545

[Python] 코딩테스트 고득점Kit | 완전탐색2-소수찾기 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 소수찾기 문제상황 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 요구사항 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있어서 -> 리턴3 [0, 1, 1]으로는 소수 [11, 101]를 만들.. 2021. 5. 26.
[Python] 파이썬 enumerate 활용법 | for문을 파이썬스럽게 enumerate 대부분 for루프를 돌면서 인덱스 변수를 증가시킨다. 하지만 파이썬에선 enumnerate()라는 내장함수를 이용해서 이런 인덱스 변수 없이 반복문을 돌릴 수 있다. 파이썬스러운 함수중에 하나이다. 인덱스와 원소를 동시에 접근하면서 루프를 동시에 돌릴 수 있기때문에 사용법-일반for문 for in : 목록은 리스트,튜플,문자열,반복자 등 순서가 있는 모든 데이터타입에 해당한다. 원소는 흔히 루프변수라고 불리는 것. 그래서 목록부분에 넘긴 객체가 담고 있는 원소들이 루프가 도는동안 하나씩 차례로 할당이 된다. 예를 들어 3개의 글자를 담은 리스트를 대상으로 루프를 돌면 각각 글자를 출력한다 또는 리스트의 인덱스와 같이 출력하고 싶다면 이렇게 range(len(리스트))를 가지고 출력한다... 2021. 5. 26.
[Python] 코딩테스트 고득점Kit | 완전탐색1-모의고사 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 모의고사 문제상황 수포자 삼인방은 모의고사에 수학 문제를 전부 찍는다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 요구사항 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수 제한사항 시.. 2021. 5. 26.
음악추천 챗봇0. 서비스기획과 아키텍쳐 설계(Serverless) 목표 이번 프로젝트의 목표는 데이터파이프라인 구축을 실습해보고 경험해보는 것이다. 늘 이야기만 들어봐서 이론적으로만 찾아보고 혼자 공부해봤지 2021.03.10 - 데이터파이프라인(datapipeline)이란? 데이터파이프라인(datapipeline)이란? 데이터엔지니어의 주요업무 중 하나, 데이터파이프라인 개발 특히 이때 데이터는 대용량데이터, 실시간데이터 등등 다양한 데이터이다. 데이터파이프라인을 통해 어디에서든지 데이터를 편하 pearlluck.tistory.com 직접 구축하고 직접 경험해본 적은 없었기 때문에 꼭 한번 해보고 싶은 프로젝트이다. 그리고 이왕이면 aws를 사용한 서버리스 아키텍쳐기반이였으면 좋겠따. 이전에 한번 해봤지만 람다와 api gateway를 사용해서 개발하는게 딱 내스타일.. 2021. 5. 25.
[Python] 문자열찾기 | find/startswith/endswith startswith startswith는 문자열이 특정문자로 시작하는지 여부를 알려준다 사용법 문자열(s). startswith('시작하는문자') : 문자열s가 시작하는 문자로 시작하니? True/False 문자열(s). startswith('시작하는문자', 위치) : 해당위치의 문자열s가 시작하는 문자로 시작하니? True/False 예시 참고로, 대소문자도 구별이 된다 find(찾을문자, 찾을위치) find는 문자열 중에 특정 문자를 찾고 위치를 반환해준다. 없을 경우 -1리턴 사용법 문자열(s). find(찾을문자) : 문자열s에서 찾을문자가 있는 위치를 반환 예시 문자열의 인덱스도 0부터 시작해서 첫단어인 H를 찾고자 할때, 찾을 위치는 0을 반환한다. k는 존재하지 안항서 -1를 반환한다 end.. 2021. 5. 25.
[Python] zip으로 index랑 values를 합쳐서 dict만든다 zip 마치 옷의 지퍼(zipper)처럼 두 그룹의 데이터를 서로 엮어주는 파이썬의 내장 함수 사용법 for 변수 in zip(객체1, 객체2) 여러 개의 순회 가능한(iterable) 객체들을 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환한다 예시 만약, zip을 사용하지 않았다면 이런식으로 각각 인덱스 변수를 사용해야 했겟지. 응용 zip을 사용하면 여러개의 리스트들을 dict로 쉽게 만들 수 있따 주의사항 단, zip()함수로 넘기는 인자의 길이가 다를때는 가장 짧은 인자를 기준으로 데이터가 엮이고 나머지는 버려진다. 출처 https://www.daleseo.com/python-zip/ 2021. 5. 25.
[Python] 람다식, lambda로 sorted key 정하기 Lambda 함수 이름없는 함수, 람다표현식을 익명함수(anonymous function) 함수를 따로 선언하지 않고, lamba식으로 대체함 예를 들어 매개변수 x에 10을더한 값을 반환하는 함수를 만든다고 하면 사용법 이렇게 할텐데 이렇게 간단한 식일때는 lambda함수로 코드를 한줄로 줄일 수 있따. 이렇게 간단하게 표현하면 뭐가 좋은가? 코드가 간단해질 뿐만 아니라 메모리를 덜 잡아먹는다. 원래 함수를 선언하면 그 함수자체를 메모리에 할당하는데 lambda함수를 쓰면 한번만 사용하고 사라지기 때문에 메모리를 효율적으로 쓸 수 있다. 응용 람다를 언제 사용하면 될까? 내가 자주 본 것은 sorted()함수를 사용할 때이다. 정렬하는 기준을 잡을때 lambda를 가지고 변형한 값 만든 후, 이 값을 .. 2021. 5. 25.
[Python] 코딩테스트 고득점Kit | 정렬3 H-index 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. H-index 문제상황 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. H-index를 나타내는 값인 h를 구하라. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index이다. 요구사항 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다 입출력 이 과학자가 발표한 .. 2021. 5. 25.
[Python] 코딩테스트 고득점Kit | 정렬2-가장 큰 수 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. 가장 큰 수 문제상황 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210 요구사항 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수 제한사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 retu.. 2021. 5. 25.
[Python] 코딩테스트 고득점Kit | 정렬1 - K번째수 아래의 문제는 프로그래머스 코딩테스트 고득점 Kit 내용이며 코드는 직접 푼 내용입니다. K번째수 문제상황 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 요구사항 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solut.. 2021. 5. 25.