프로그래머스
-
[파이썬] 풍선 터트리기코딩 테스트/프로그래머스 2023. 5. 3. 16:06
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/68646 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 규칙에 따라 최종적으로 남을 수 있는 1개의 풍선은 몇 개 가능한 지 출력하는 문제 인접한 두 풍선을 고른 뒤, 하나를 터트림 번호가 작은 풍선을 1번만 터트리기 가능 이후에는 큰 풍선만 터트림 cur 기준으로 왼쪽에서의 최솟값과 오른쪽에서의 최솟값을 구함 배열의 길이가 1백만이므로 n^2으로 구할 시 시간 초과가 뜸 오른쪽에서의 최솟값은 반대 방향으로 일직선 탐색 cur 기..
-
[데브 매칭] 다단계 칫솔 판매 ( 파이썬 )코딩 테스트/프로그래머스 2023. 4. 26. 20:10
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 tree 라는 자식노드: 부모노드 딕셔너리를 이용해서 문제 품 tree에는 center를 따로 기입해서 최종 부모를 넣음 seller를 순회하면서 이익금을 계산 seller[i]의 총 판매액(money)은 amount[i] * 100 이 때 seller[i]의 추천인이 있다면 money의 90%를 seller[i] 의 이익금(profit) 에 담아주고 10%는 추천인 이익금의..
-
[탐색] 자물쇠와 열쇠 (파이썬)코딩 테스트/프로그래머스 2023. 4. 25. 19:33
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 열쇠는 자물쇠 영역 밖으로도 나갈 수 있다는 것을 캐치 열쇠의 [n-1,n-1] 좌표가 자물쇠의 [0,0]에 닫을 수 있음 열쇠의 [0,0]이 자물쇠의 [m-1,m-1]에 닿을 수 있음 이 점을 해결하기 위해서는 자물쇠의 가로 세로를 3씩 곱해서 늘려줘야함 그런 다음 열쇠를 자물쇠의 오른쪽, 아래 방향씩 탐색하면 됨(방문 체크는 sx,sy 라는 시작 지점을 통해 체크) 큐에는..
-
[이분탐색] 입국심사 (파이썬)코딩 테스트/프로그래머스 2023. 4. 22. 20:12
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 시간부터 사람까지 값의 범위가 10억으로 굉장히 광범위함. 걸리는 시간의 최솟값을 구하는 것이므로 특정 시간대에서의 행할 수 총 사람 수를 구해본다. 사람 수가 n 이상이라면 해당 시간대에서는 모두 처리 할 수 있다는 것이므로 시간의 줄여본다.(end를 mid-1 로) 사람 수가 n 미만이라면 해당 시간대에서는 처리 불가이므로 시간대를 늘려봄(start를 mid+1로) 소스 ..
-
[탐색] 경주로 건설 (파이썬)코딩 테스트/프로그래머스 2023. 4. 22. 19:59
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/67259?language=python 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방향에 따라 비용이 변하는 문제이다. 방향을 기억해줘야 하고 특정 위치에서 코너가 발생하더라도 방향에 따라 결과값이 바뀔 수 있다. 그러므로 위치에서의 비용을 기록하는 cost라는 그래프는 각각의 방향에 따라 비용을 저장해야함 큐에는 현재의 방향과 다음에 갈 방향이 직선인지 체크 할 dic이라는 변수도 저장(상하라면 0, 좌우라면1) 나머지는 평범..
-
[힙] 디스크 컨트롤러 (파이썬)코딩 테스트/프로그래머스 2023. 4. 21. 20:23
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 현재 시점(time)에서 처리 할 수 있는 작업들을 힙에 모두 넣어줌 현재 시점에서 작업이 가능한 것들이 있다면(len(q)>0) 끄집어내서 처리해줌. 이 때 힙에 넣어준 것이므로 pop을 해준다면 가장 소요되는 작업량이 작은 값이 나올 것. (이 때 나오는 것은 작업량 기준으로 힙에 넣은 것이므로 node[0]은 소요시간, node[1]은 작업 시작 시간임) 그럼 이후의 작..
-
[이분 탐색] 징검다리 건너기 (파이썬)코딩 테스트/프로그래머스 2023. 4. 20. 20:50
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제 조건 stones 배열의 크기는 1 이상 200,000 이하입니다. stones 배열 각 원소들의 값은 1 이상 200,000,000 이하인 자연수입니다. 처음에는 한번에 건널 뛸 수 있는 k 만큼 돌을 묶어서 그 안의 범위 중 최댓값을 찾고 또 그 최댓값 중 가장 작은 값을 결과로 출력함 하지만 이럴 경우 중간 중간 묶었을 때 발생하는 공백들로 인해 묶음의 범위가 또 ..
-
[투 포인터] 보석 쇼핑 (파이썬)코딩 테스트/프로그래머스 2023. 4. 20. 19:52
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 투 포인터를 이용해서 모든 보석 종류를 수집하지 못했다면 end +1 모든 보석 종류를 수집해서 end까지의 최소 길이 구하기 위해 start+1 특정 보석의 갯수는 딕셔너리를 이용해서 체크 모든 보석 종류를 수집했는지는 r이라는 변수를 두고 수집 할 보석 갯수 nn 가 비교해서 알아냄 r==nn 이면 모든 보석을 수집한 것이므로 최소 길이를 구하기 위해 start를 +1 씩..