목록알고리즘/프로그래머스 (54)
이숭간 공부기록
https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr 문제유형 : DP 문제풀이 : 숫자X를 n번 사용해서 만들수있는 숫자 숫자 X를 n번 이어붙여서 만든 숫자 숫자 X를 i번 사용해서 만들수있는 숫자와 숫자 X를 n-i번 사용해서 만들수 있는 숫자의 사칙연산의 결과 (1
https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 문제유형 : 우선순위큐, 힙 문제풀이 : 이전에 백준에서 풀었던 문제랑 똑같아서 2개의 큐를 어떻게 동기화하는지에 대한 방법을 금방 기억할 수 있었다. (인덱스 이용!) 근데 테스트케이스 한개가 자꾸 틀려서 봤더니 마지막에도 한번더 확인해줘야한다는것을 생각하지 못했다. 1삽입,2삽입,3삽입,4삽입, 최대삭제, 최대삭제, 최소삭제, 최소삭제, 5삽입, 6삽입의 테스트케이스가 그렇다. 만약 마지막에 한번더 처리를 해주지않으면 이때 최소힙에는 [3,4,5,6]이, 최대힙에는 [1,2,5,6] 이 존재하게되므로 여기서 정답을 출력하면 답[6,5]..
https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 문제유형 : 그리디 문제풀이 : 스택을 이용한다. ( 숫자의 맨앞을 계속해서 더 크게 만들어주는것 ) 스택에 숫자가 있고 k가 0 이상이면 현재숫자와 비교해서 더 큰값이 스택의 앞쪽에 위치할 수 있도록 한다. 만약 현재숫자가 현재스택 최상단숫자보다 작으면 그냥 넣는다. 현재숫자가 더 크다면 스택에서 pop하고 k를 1감소시킨다. 이 과정을 더이상 스택의 최상단에서 현재숫자보다 큰값이 안나올때가지 반복한다. 숫자를 모두 확인했는데 k가 0이상이면 더 제거해야한다는 뜻이고, 이미 앞쪽에는 최대한 큰 숫자가 앞에 위치하도록 조정해 놓은것이므로 ..
https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문제유형 : DP 문제풀이 : 특정 좌표가 웅덩이에 포함되어있는지 확인할때 주어진 좌표는 행,열이 바뀌어잇기때문에 i,j가 아니라 j,i로 확인해줘야했다. 점화식 : S[i][j] = S[i-1][j] + S[j-1][i] 이때 j,i가 puddles에 포함되어있다면 위 점화식을 수행하지 않고 0으로 바꿔주고 넘어간다. 정답코드 : def soluti..
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제유형 : 스택 문제풀이 : 정답코드(파이썬): from collections import defaultdict def solution(progresses, speeds): answer = [] daycount = defaultdict(int) # progresses가 빌때까지 100이 안넘을때만 시간을 1씩 증가시키면서 더해준다. # 더해가면서 맨앞의..
https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문제유형 : 문자열, 구현, 집합 문제풀이 : 주어진 조건에 맞게 문자열을 잘 조작하고 집합연산도 적절하게 사용해서 구현하는 문제 나는 Counter를 쓰긴 했는데 다른분 풀이보니까 그냥 리스트.count()하면 되긴한다 그래도 딕셔너리 쓰는게 더 시간복잡도가 좋지않을 ㄲ ㅏ..? 시픈데 어쨋든 내 코드가 더 복잡하긴 하다. 정규식을 잘 기..