본문 바로가기

Algorithm/Python9

[Python] ChatGPT API를 활용한 토이프로젝트 생성형AI 중 요즘 가장 뜨거운 감자인 ChatGPT를 활용하여 토이프로젝트를 진행해보려고 합니다. ChatGPT도 API로 활용이 가능하다는 사실 알고계셨나요? 2024. 8. 2.
[HackerRank] Hash Tables : Ransom Note (Python) 친구가 Python 에서 Dictionary 연습용 문제를 추천해줘서 풀어봤다. Python은 포함 연산자( not in / in ) 를 제공하는게 평소 C++과 다르게 너무 효율적이라 아직 적응이 안된다.. 어쨌든! 이 문제는 Dictionary로 비교하는 문제로 연습하기 딱 좋았다! 문제 [HackerRank] Hash Tables : Ransom Note Harold is a kidnapper who wrote a ransom note, but now he is worried it will be traced back to him through his handwriting. He found a magazine and wants to know if he can cut out whole words fro.. 2021. 5. 27.
(이코테) 이것이 취업을 위한 코딩 테스트다 with 파이썬 [이것이 취업을 위한 코딩테스트다 with 파이썬] - 저자 : 나동빈 강의 기록 그리디 알고리즘 그리디 알고리즘(탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구함 그리디 해법은 그 정당성 분석이 중요함 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많음 하지만 코딩 테스트에서의 대부분의 그리디 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서, 이를 추론할 수 있어야 풀리도록 출제됨 문제상황 1) 루트 노드부터 시작하여 거쳐 가는 노드 값이 합을 최대로 만들고 싶습니다. Q. 최적의 해는 .. 2021. 5. 22.
[백준] 1316 - 그룹 단어 체커 (Python) 이 문제를 풀면서 느낀점: 다른 언어와 다르게 Python은 Set, List, Tuple, Dictionary 에 대해 기초가 잡혀있어야 문제에 대한 접근이 쉬워질것 같다. 문제 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 내 풀이 N=int(input()) answer=0 for i in range(N): word = raw_input() for j in range(len(word)): if j!=len(.. 2021. 5. 20.
[백준] 10870 - 피보나치 수 5 (Python) 프로그래머스로 어려운 문제 먼저 풀려니 언어가 python 이라서 더 헷갈렸다! 그래서 백준에서 단계별로 풀어봤다.. 차 근 차 근 영 차 영 차.... 문제 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 피보나치 수는 재귀함수를 이용해야한다. 이거 기초라 못 풀면 큰일나는데 다행히 많이 봤던 거라 바로 풀었다. 내 풀이 def fibonacci(num): if num 2021. 5. 20.
알고리즘 관련 파이썬 주요 라이브러리 코딩테스트를 Python으로 준비하고자 맘 먹었지만, 알고있는 내장 라이브러리가 많지 않아 문제 풀 때 어떻게 접근해야할지 난감했다. 그래서 오늘은 코딩테스트에서 자주 쓰이는 내장 라이브러리를 정리해보고자 한다. 코딩 테스트 준비 시 반드시 알아두어야 할 Python 라이브러리 내장함수: print(), input() 과 같은 기본 입출력 기능부터 sorted()와 같은 정렬 기능을 포함하는 내장 라이브러리. itertools: 반복되는 형태의 데이터를 처리하는 기능을 제공하는 라이브러리. 순열과 조합 라이브러리를 제공한다. heapq: 이진 탐색(Binary Search) 기능을 제공하는 라이브러리. collections: 덱(deque), 카운터(Counter) 등의 유용한 자료구조를 포함하는 라이브.. 2021. 5. 19.
[프로그래머스] Level2 - 멀쩡한 사각형 내 풀이 # 정사각형일경우 > 사용 못하는 정사각형의 갯수 : 가로숫자 # 직사각형일경우 > 사용 못하는 정사각형의 갯수 : 가로나 세로 중 작은 숫자 * 2 def solution(w,h): answer = 1 rect = w*h cantuse = 0 if(w == h): cantuse = w answer = rect - cantuse elif(w h): cantuse = h*2 answer = rect - cantuse return answer cs 결과 테스트케이스18개 중 5개만 통과했다ㅠ 이렇게 단순하게 접근하는게 아니였고, 입력받은 w, h의 최대공약수를 활용해야하는 문제였다.. 다른사람 풀이 제일 명쾌한 해답이 있어서 참고하였다. https://leedakyeong.tistory.com/en.. 2021. 5. 14.
[프로그래머스] Level2 - 소수만들기 (Python) 문제 설명 주어진 숫자 중 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 [1,2,4]를 이용해서 7을 만들 수 있습니다. 입출력 예 #2 [1,2,4]를 이용해서 7을 만들 수 있습니다. [1,4,6]을 이용.. 2021. 5. 13.
[프로그래머스] LEVEL1 - 완주하지 못한 선수 (Python) 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다 입출력 예 participant completion return ["leo", "kiki.. 2021. 5. 2.