본문 바로가기

프로그래머스7

[프로그래머스] Lv.2 - 소수찾기 (Python) programmers.co.kr/learn/courses/30/lessons/42839?language=python3 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr Stpes num : 입력받은 숫자 문자열을 하나씩 리스트로 변환합니다. finder(x) : 소수 찾는 함수를 만들었습니다. 2-1 소수는 2부터 이므로, x가 1보다 작거나 같으면, False 반환합니다. 2-2 x가 1보다 크면, 2부터 x의 제곱근까지 나누어지는 수 없으면 True(소수)반환합니다. 소수 개수 세기위한 cou.. 2021. 1. 2.
[프로그래머스] Lv.2 - 다리를 지나는 트럭 (Python) Steps 1. 경과 시간(time)과 다리를 건너는 트럭 (queue)를 선언합니다. 2. 모든 트럭이 지나갈 때까지 반복합니다. 3. 대기 트럭이 0이라면(모든 트럭이 다리를 지나거나 다리를 건너는 중) 3-1 while문이 계속 진행되도록 pass 합니다. 4. 대기트럭의 가장 첫 트럭의 무게가 현재 다리 무게보다 작을 경우 다리를 건너도록 합니다. 4-1. 트럭이 다리위로 올라오면 그 무게만큼 weight를 빼줍니다. 4-2. 트럭이 다리에 올라온 시간을 튜플로 기록합니다. 5. 3번, 4번이 진행되면 time을 1 더합니다. 6. 다리를 건너는 트럭의 출발 시간과 현재 시간의 차이를 이용하여 트럭이 다리를 건너는 시간을 구합니다. 6-1 만약 출발 시간과 현재시간의 차이가 다리를 건너는 시간과 .. 2021. 1. 1.
[프로그래머스] Lv.2 - 프린터 (Python) programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 입력받은 리스트 priorities에서 첫 번째 element가 가장 큰 값인지 확인합니다. 가장 큰 값이라면 출력(pop)하고 출력 횟수(answer) 증가시킵니다. 처음 지정한 location이 0이라면, 출력 횟수를 return 합니다. 처음 지정한 location이 음수라면, 남은 priorities의 길이만큼 더합니다. location 1 빼서 위치 이동 prioriti.. 2020. 12. 29.
[프로그래머스] Lv.2 - 위장 (Python) programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 1) all_clothes : 의상 종류의 "수" 채워 넣을 리스트 2) class_clothes : 입력받은 모든 의상 class 리스트 3) class_clothe : 입력받은 의상 중복 제외한 class 리스트 4) 중복 제외 의상 class 리스트 element에서 하나씩 꺼내서 모든 의상 class 리스트에서 개수를 세어 all_clothes에 append 합니다. 5) all_clothes에서 각 의상 종류의 수 값에 +1 을 더하여 곱하고 마지막에 1을 뺐습니다. 6) 만약 특정 의상(headgear) 수가 3개, 다른 의상(eyewear)의 수가 .. 2020. 12. 29.
[프로그래머스] Lv.1 - 실패율 (Python) programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr [문제] 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프렌즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실.. 2020. 12. 29.
[프로그래머스] Lv.1 - 예산 (Python) Sol1) d를 오름차순으로 정렬합니다. 예산이 적은 부서일수록 index가 낮기 때문에 index가 0인 부서부터 예산을 할당합니다. 예산을 할당하면, 그 부서는 pop으로 빼고, answer(예산 할당 부서의 수)을 1 추가합니다. def solution(d, budget): answer = 0 d.sort() while budget > 0: if budget - d[0] >=0 : budget -= d.pop(0) answer += 1 else: return answer return answer print(solution([1,3,2,5,4],9)) [out] 3 하지만 저는 런타임 에러를 마주했습니다..! Sol2) def solution(d, budget): answer = 0 while bud.. 2020. 12. 21.
[프로그래머스] Lv.1 - 같은 숫자는 싫어_파이썬 효울성까지 체크하는 문제가 나왔습니다! 효율성이 시간 복잡도로 측정한다는 말을 얼핏 들은거 이외에는 효율성에 대해 잘 모르겠습니다..ㅠ.ㅠ 같은 숫자는 싫어는 숫자 listt arr에서 연속된 숫자를 제외하고 모든 숫자를 return 하는 문제입니다. 따라서 첫번째 고려사항은 중복된 숫자가 나오지 않게 막아줘야 했습니다. 이를 위해서 저는 if else문을 통해 조건문을 이용했습니다. if문으로 맨 마지막에 추가된(제일 최근에 추가된)숫자가 지금 추가되려는 숫자와 같다면 pass 그렇지 않다면(제일 최근에 추가된 숫자와 다르다면) 지금 숫자(i)를 추가하도록 했습니다. 하지만 제일 처음 실행했을때, return하는 answer의 리스트가 비어있었기 때문에 answer[-1]이 에러가 났습니다. 따라서 제.. 2020. 11. 26.