목록알고리즘 PS (108)
DevKim
[ 알고리즘 ] 구현 [문제 접근] 진도율과 삭제 할 리스트를 따로 생성하여 넣고 지우며 배포되는 기능의 갯수를 구함 [코드] import math def solution(progresses, speeds): answer = [] result=[] remove=[] n=len(progresses) for i in range(n): k=math.ceil((100-progresses[i])/speeds[i]) result.append(k) while True: if n==0: break s=result[0] cnt=0 for i in result: if i
programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 전형적인 아이디어가 필요한 문제였다, 처음엔 정말 빡구현으로 조합을 이용하여 구하려했는데 시간이 너무 오래걸려서 .. 뭔가 잘못 가고있음을 깨달았따 생각해보니 0,1,2 로만 이루어진 3진법을 응용하는 문제였다. 대신 0 대신 4를 넣으면 되고 주의할 점은 0이 나왔을때 n 값에 1을 빼줘야한다는 점이다 [코드] from itertools import product def solution(n): answer='' while n>0: m=n%3 n=n//3 if m==0: n=n-1 answer = '412'[m]..
programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr [ 자료구조 ] 스택,큐 [문제 접근] 가장 앞에 있는 문서(J)를 큐에서 꺼낸 후, 중요도가 가장 높은 애 (max) 보다 작으면 다시 큐에 넣어줌 큐가 빌 때까지 반복 [코드] from collections import deque def solution(priorities, location): que=deque() cnt=0 for i in range(len(prioritie..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV139KOaABgCFAYh SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [ 알고리즘 ] 구현 [ 문제 접근 ] 덤프의 횟수만큼 반복문을 돌려주고 가장 크고,작은 높이를 선택해서 평탄화를 진행하면 되는 간단한 구현문제 [ 코드 ] result=[] for t in range(10): n=int(input()) #덤프 횟수 List=list(map(int,input().split())) for i in range(n): Max=max(List) Min=min(List) if max(Li..
swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV134DPqAA8CFAYh&categoryId=AV134DPqAA8CFAYh&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=1&&&&&&&&&& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [ 알고리즘 ] 구현, 완전탐색 [문제 접근] 양쪽 2개씩 거리 2 이상의 공간이 확보되는지 체크하고, 그 수를 세어줌 D3..
programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr [문제 접근] - 키패드의 인덱스를 리스트로 생성하여 미리 저장해두고 (*,#은 인덱스 10,11로 지정), 애매한 2,4,6,8 번들의 손가락 위치는 그 전의 왼쪽, 오른쪽 손가락 위치와 비교해서 더 작은 위치를 return [알고리즘] - 구현 [코드] def s..
[첫번째 문제 접근] - 정수가 0~9가 아닌 10까지 주어진 점과, 옵션이 있을 수도 있고 없을 수도 있다는 조건을 보고, 꼼꼼하게 모든 상황을 고려하여 구현해야겠다고 생각했고, 문자열을 슬라이싱하는 과정 중에 이것 저것 조건을 모두 찾아서 구현했다. 정답이지만 반복되는 부분과 긴 코드를 줄이기 위해 다른 사람들의 풀이를 검토해봄 [두번째 문제 접근] - 다른 분의 코드를 보니 dictionary와 정규표현식 re를 통해 15줄 안에 구현한 코드를 발견하였다 - 정규 표현식을 이용하여 다트 한번에 주어지는 점수,보너스,옵션을 나누고 조건에 따라 dic에 있는 보너스와 옵션을 제곱하고 곱해줌 [알고리즘] - 구현 [첫번째 코드] def solution(dartResult): answer = 0 resul..
programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr [문제 접근] - 주어진 조건에 따라 상황을 나누어, 스테이지에 도달했지만 클리어 못한 스테이지와 스테이지에 도달도 했고 성공도 한 스테이지를 구한 후, 실패율을 구함 [알고리즘] - 구현 [코드] def solution(N, stages): List=[] answer=[] for i in range(1,N+1): a=stages.count(i) # 스테이지 도달,클리어 못함..