본문 바로가기

Programming/알고리즘 파이썬 문제풀이

(15)
[Python/DailyAlgo] 79. 배열 정렬 https://dailyalgo.kr/ko/problems/79쉬운 문제지만, 람다식에 입력이 들어가는 인자를 어떤 식으로 사용해야 하는지에 대해 놓치기 쉬운 부분을 잘 찝어주고 있어서 가져왔다. 입력 : 길이가 2인 정수 리스트를 요소로 가지는 2차원 리스트 numbers 출력 : 첫 번째 값으로 오름차순, 두 번째 값의 절댓값으로 오름차순 정렬한 후,안정 정렬로 마무리하여 정렬이 완료된 2차원 리스트테스트케이스 번호 numbers return1 [[3,4],[2,-5],[3,-1],[1,7]] [[1,7],[2,-5],[3,-1],[3,4]]2 [[-1,2],[-1,-3],[0,5],[0,-4]] [[-1,2],[-1,-3],[0,-4],[0,5]]3 [[5,-6],[3,2],[5,6],[2,1]] ..
[Python/Programmers] 121683. 외톨이 알파벳 https://school.programmers.co.kr/learn/courses/30/lessons/121683 입력 : 문자열 input_string출력 : 외톨이 알파벳 사전 순 나열한 문자열input_string result"edeaaabbccd" "de""eeddee" "e""string" "N""zbzbz" "bz"직관 및 접근이 문제는 초기 접근에서 많이 어려움을 겪어, 강사님 손글씨 풀이를 듣고 힌트를 얻어 다시 풀이를 시작함.강사님's 풀이 1)외톨이, 등장 두 개의 set을 잡고, 마지막 문자라는 변수 하나를 잡음. 문자열을 탐색하며 하나씩 넣음. 이미 등장한 거 안에 있는데 마지막 문자랑 다르면 외톨이에 넣음. 그렇게 해서, 마지막에 외톨이 set 보고 조건문으로 반환하면 됨.강사님..
[Python/Programmers] 42578. 의상 https://school.programmers.co.kr/learn/courses/30/lessons/42578 입력 : 코니의 의상들이 담긴 2차원 리스트 clothes출력 : 서로 다른 옷의 조합의 수 clothes return[["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]] 5[["crow_mask", "face"], ["blue_sunglasses", "face"], ["smoky_makeup", "face"]] 3 직관 및 접근 공부내용 풀이1차 풀이# 1차 풀이from collections import Counterdef solution(clothes): # 리스트의 2번째 ..
[Python/Programmers] 42576. 완주하지 못한 선수 https://school.programmers.co.kr/learn/courses/30/lessons/42576 입력 : 참가자 리스트, 성공자 리스트출력 : 실패한 사람 이름 문자열 participant completion return["leo", "kiki", "eden"] ["eden", "kiki"] "leo"["marina", "josipa", "nikola", "vinko", "filipa"] ["josipa", "filipa", "marina", "nikola"] "vinko"["mislav", "stanko", "mislav", "ana"] ["stanko", "ana", "mislav"] "mislav" 직관 및 접근 공부내용 풀이1차 풀이# 1차 풀이 (정확성 성공, 효율성 실패)de..
[Python/Programmers] 81301. 숫자 문자열과 영단어 https://school.programmers.co.kr/learn/courses/30/lessons/81301 입력 : 일부가 인코딩된 문자열 s출력 : 인코딩된 일부를 디코딩한 원본 문자열s result"one4seveneight" 1478"23four5six7" 234567"2three45sixseven" 234567"123" 123  직관 및 접근일부가 인코딩된 문자열 s가 주어짐.인코딩된 일부를 디코딩한 원본 문자열을 반환하자. 공부내용 풀이1차 풀이def solution(s): num_dict = {'zero': '0', 'one': '1', 'two': '2', 'three': '3', 'four': '4', 'five': '5', ..
[Python/Baekjoon] 2798. 블랙잭 https://www.acmicpc.net/problem/2798 입력 : 카드의 개수 N과 최대 합 M, 그리고 카드들 목록출력 : M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합 예제 입력 1 5 215 6 7 8 9예제 출력 1 21 직관 및 접근각 카드는 양의 정수.딜러는 N장 뽑아서 숫자 M 크게 외침.플레이어는 N장 중 3장을 골라 합이 M을 넘지 않으며 최대한 크게 만들어야 함.입력 : N(카드 개수), M과 카드 목록출력 : 내가 뽑은 카드 3장의 합공부내용 풀이1차 풀이# 1차 풀이import sysinput = sys.stdin.readlinen, m = map(int, input().split())cards = list(map(int, input().split()))sum = ..
[Python/Programmers] 12932. 자연수 뒤집어 배열로 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12932 입력 : 자연수 n출력 : 뒤집은 리스트 n return12345 [5,4,3,2,1] 직관 및 접근 공부내용 풀이1차 풀이# 1차 풀이 : C스럽게 풀이def solution(n): answer = [] while(n > 0): answer.append(n % 10) n = n // 10 return answer- C스럽게 푼 것 같음. 나중에 추가로 고민해보자.- input이 문자열이면 그냥 split이나 list() 해서 map쓴 다음 reverse 메서드 쓰든 슬라이싱 쓰든 하면 바로 풀릴텐데.. 정수라서 이렇게 되네2차 풀이# 2차 풀이 : ..
[Python/LeetCode] 1. Two Sum https://leetcode.com/problems/two-sum/Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.You may assume that each input would have exactly one solution, and you may not use the same element twice.You can return the answer in any order.덧셈하여 target을 만들 수 있는, 배열의 두 숫자 인덱스를 반환하라.* 오직 하나의 valid한 솔루션만이 존재한다. 입력 : 리스트 nums와 정수 target..