알고리즘 문제 풀이

알고리즘 문제 풀이/프로그래머스

[프로그래머스] 신고 결과 받기 - python[Hashing]

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 구현 과정 설계 과정 신고할 경우 정지당한 사람에게 메일이 가는 것이 아니라 신고한 사람에게 당신이 신고한 사람이 정지가 되었다고 메일이 가야하는 구조 자료구조는 dictinary를 기반으로 가져가는 것이 좋을듯함. d_list로 for문을 돌려 딕셔너리를 생성한다. report를 한바퀴 돌려서(신고당한 사람에 초점을 맞춘다) 각 사람별 신고된 횟수를 저장한다.(중복 신고되지 않게 해야..

알고리즘 문제 풀이/프로그래머스

프로그래머스 정수 삼각형

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제풀이 DP 문제로 현재 위치에 가장 max 값을 넣어서 가장 마지막 줄에 max값을 구하면 되는 문제였다. 아이디어는 금방 떠올랐으나 if문을 더 적게 사용하는 방법을 고민하다 보니 시간이 좀 더 걸렸다.(결국 처음 생각한대로 작성함) def solution(triangle): lst = [] for layer in triangle: if len(layer)== 1 :..

알고리즘 문제 풀이/프로그래머스

프로그래머스 점프와 순간 이동

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12980 문제 설명 문제 풀이 - 처음에는 현재 위치에서 +1 칸을 이동하고 count도 1증가시키거나 *2칸을 이동하고 count는 증가시키지 않도록 하여 큐에 추가하는 방식인 BFS로 풀었으나 시간초과가 발생했다. from collections import deque def solution(n): ans = n queue= deque([(1,1)]) while queue: val = queue.popleft() if val[1] >=n : continue if val[0] >n: continue elif val[0] == n : if val[1] < ans: ans = val[1] qu..

알고리즘 문제 풀이/백준

백준 이중 우선순위 큐 - 7662

문제 링크 https://www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 문제 설명 문제 풀이 과정 우선 입력부를 처리하고, 조건에 따라 분기한다. 생각해보니 정렬을 minheap으로 하면 간단할 것 같아서 라이브러리 가져와 해결 틀림 min heap의 최대값을 구하는 과정에서 max함수를 사용하여 시간초과 문제를 발견함 max heap도 만들어서 처리하는 방식을쓰면 logn + logn이 될 듯함. 근데 결국에 max값을 max heap에서 빼도 min..

알고리즘 문제 풀이/프로그래머스

프로그래머스 구명보트 파이썬

문제링크 :https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 처음 문제를 접했을 때 최대 무게가 고정되어 있기에 Greedy임을 파악하여, 정렬 후 앞뒤 값을 비교하여 제거하는 방식을 사용하였다. 내 코드 from collections import deque def solution(people, limit): answer = 0 people = deque(sorted(people)) while len(people)>1: answer +..

잘잔디
'알고리즘 문제 풀이' 카테고리의 글 목록 (10 Page)