반응형

Today I Learned/Python 문제풀이 8

프로그래머스 lv2. 기능개발 (스택/큐로 풀기)

https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 스택과 큐를 공부하고 프로그래머스의 스택/큐 카테고리에 있는 Lv2 문제에 적용시켜보았습니다. 기능 구현의 속도와 진행 상태를 받아서, 배포할 때 몇개의 기능이 동시에 배포될 수 있을지 계산하는 문제인데요. 현실에서 사용할 법한 문제라서 재미있게 풀었습니다 스택: LIFO (싱크대에 쌓여있는 접시를 생각하면, 마지막에 쌓인 접시가 먼저 세척됨) append() : 맨 뒤에 붙임 pop(): 맨 뒤..

프로그래머스 lv1. 없는 숫자 더하기 (set 사용)

https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 0 ~ 9 사이의 정수가 들어있는 numbers 리스트에서 0 ~ 9 중에 없는 숫자를 더해서 출력하기 문제풀이 아이디어 numbers 리스트는 중복된 값이 없다고 하니까, 같은 값이 2번 있을 수 없다는 점을 파악 0 ~ 9 까지 들어있는 set를 만들고, 이 set가 돌면서 numbers 리스트에 있는 값을 지워버리고 set에 남아있는 값을 합치자 set 사용한 이유 중복 없는 값으..

프로그래머스 lv1. 음양더하기 (zip 사용해서 간단하게)

https://school.programmers.co.kr/learn/courses/30/lessons/76501 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr signs값이 false인 경우 - true 인 경우 +로 absolutes의 값을 다 더해서 result로 넘겨주는 문제! 1차 문제풀이 def solution(absolutes, signs): answer = [] for i,v in enumerate(signs): # True 일때 absolutes 의 해당 인덱스 값을 그대로 answer에 붙여줌 if v: answer.append(abso..

[프로그래머스] lv0. 더크게 합치기

https://school.programmers.co.kr/learn/courses/30/lessons/181939?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(a, b): r1 = int(str(a) + str(b)) r2 = int(str(b) + str(a)) return r1 if r1 >= r2 else r2 1. 입력받은 a,b를 str 타입으로 변환해서 이어붙여준 뒤 다시 int로 변환 2. (true일 때 반환 값) if (조건) else (false일 때 반환 값) 2번 부분을 max..

[프로그래머스] lv2. 프린터

문제링크: programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 아이디어 처음 주어진 우선순위 리스트를 index 정보와 함께 저장한다. (처음의 location 정보로 답변해야하므로) : (index,value) value 기준으로 max 값을 찾아서 슬라이싱을 활용해 리스트 정렬을 다시해준다. 해당 max값은 기존 리스트에서 pop해주고, 새로운 리스트에 쌓아준다. 기존 리스트가 0이 될때까지 반복한다. Solution1. (틀..

[프로그래머스] Lv1. 완주하지 못한 선수

문제 링크: programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr Solution1. for + remove 1) participant 차례로 검사해서 completion에 있는지 확인 2) 있으면 completion에서 해당 선수 지워주기 3) 없으면 해당 선수 return 여기서 굳이 remove 해주었던 이유는, 3번째 입출력을 보면 mislav 라는 선수가 2명이 있다. completion에는 misl..

[프로그래머스] Lv2. 기능개발 (스택/큐)

문제 참고 링크 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 아이디어 작업 완료인 100에서 현재까지 진행된 작업(progresses)를 빼면 , 남은 작업 수가 남고 speeds로 나누면 작업 완료까지 걸리는 일 수를 구할 수 있다. 남은 일 수 list를 for문으로 검사하면서, 이번 배포에 포함할 수 있는 작업 수를 카운트하고, pop으로 리스트에서 빼준다. 이 계산을 list가 비워질때까지 진행한다. Solution1. (내 풀이) import math def solution(progress..

[프로그래머스] Lv1. 나누어 떨어지는 숫자 배열

문제 참고 링크 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr Solution1. (내 풀이) 문제 설명 순서대로 풀이한 방식이다. 1) 리스트를 순회하면서, 조건에 맞는지 검사한다. 2) 조건에 맞으면 answer list에 추가한다. 3) 리스트를 다 순회한 후에, answer list가 비어있으면 -1을 추가해준다. 4) 정렬하여 return 한다. def solution(arr, divisor): answer = [] # 조건에 만족..

반응형