algorithm

https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근1. bfs를 탐색을 하면서 최솟값을 갱신해 나간다. 최종코드 from collections import deque import sys def is_range(n, m, x, y): return 0
https://school.programmers.co.kr/learn/courses/30/lessons/172928# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그래프 위에서 정해진 방향과 거리만큼 로봇을 움직이는 문제이다. 그래프 크기와 명령의 개수가 많지 않은 단순한 시뮬레이션 문제이다. dict(), dxs, dys 변수를 활용해서 동, 서, 남, 북으로의 다음 방향을 그래프 탐색한다. 1. 그래프 범위에서 나가는지 2. 중간에 X가 있어서 갈 수 없는지 에 대해서 조건문 처리만 해주면 쉽게 해결할 수 있다. 최종코드 def is_range(x..
https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dict()를 활용하여 {사람이름 : 그사람에 대한 추억점수}를 구한다. 각 사진을 순회하며 사진속에 있는 사람의 추억점수를 모두 더해준다. 단, dict()배열에 특정 사람이 없는 경우가 있을 수 있기 때문에 조건문을 활용해서 이름이 있는 경우에만 점수를 더해준다. (이름이 없으면 0점이기 때문에 더해주지 않아도 됨) 최종코드 # 산진별로 추억점수를 구한다. # 사진 속 인물의 그리움 점수를 ..
https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 부분 수열의 합이 k인 부분수열의 구간을 구하여라. 길이가 더 짧고, 구간이 더 앞쪽에있는 정답을 찾자. sequence(≤ 1,000,000) 이므로 구간의 합을 1번의 for문을 통해 구해야 한다. 구간합을 O(N)에 구하기 위해 누적합을 구한다. 투포인터(p1, p2)를 활용해서 앞에서부터 k값에 해당하는 구간을 찾는다. 현재 구간합이 k보다 작으면 p2를 늘려주고, k보다 크다면 p1을 ..
https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dict() 테이블에 {이름 : 등수}의 형태로 데이터를 보관한다. 해설진이 부른 이름 callings를 순회하면서 등수가 바뀔 때마다 players배열에서 위치를 바꿔준다. 그리고 dict() 테이블의 이름과 등수도 새롭게 갱신해준다. 전체적으로 callings(≤ 1,000,000)를 한번만 순회하므로 시간복잡도는 O(N)이다. 최종코드 def solution(players, callings..
https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 원점을 중점으로 가지는 두개의 원이 있을 때, 두개의 원 사이에 있는 정수 좌표 개수를 구해라! 접근1. 완전탐색 -> x O(n**2) 접근2. 1/4만 구하자 -> x 시간초과 접근3. 규칙을 찾아볼까? -> 실패 접근4 -> 큰 원안의 개수에서 작은 원안의 개수를 뺀다. 반지름값이 터무니 없이 컸기 때문에 사실 for문 한번에 해결할 수 있는 방법을 생각해 냈어야 했다. x**2 + y**2
문제 https://leetcode.com/problems/gas-station/?envType=study-plan-v2&envId=top-interview-150 더보기 Example 1: Input: gas = [1,2,3,4,5], cost = [3,4,5,1,2] Output: 3 Explanation: Start at station 3 (index 3) and fill up with 4 unit of gas. Your tank = 0 + 4 = 4 Travel to station 4. Your tank = 4 - 1 + 5 = 8 Travel to station 0. Your tank = 8 - 2 + 1 = 7 Travel to station 1. Your tank = 7 - 3 + 2 = 6..
문제 https://leetcode.com/problems/candy/?envType=study-plan-v2&envId=top-interview-150 더보기 Example 1: Input: ratings = [1,0,2] Output: 5 Explanation: You can allocate to the first, second and third child with 2, 1, 2 candies respectively. Example 2: Input: ratings = [1,2,2] Output: 4 Explanation: You can allocate to the first, second and third child with 1, 2, 1 candies respectively. The third ch..
문제 https://leetcode.com/problems/insert-delete-getrandom-o1/?envType=study-plan-v2&envId=top-interview-150 더보기 Example 1: Input ["RandomizedSet", "insert", "remove", "insert", "getRandom", "remove", "insert", "getRandom"] [[], [1], [2], [2], [], [1], [2], []] Output [null, true, false, true, 2, true, false, 2] Explanation RandomizedSet randomizedSet = new RandomizedSet(); randomizedSet.insert(1)..
문제 https://leetcode.com/problems/h-index/?envType=study-plan-v2&envId=top-interview-150 더보기 Example 1: Input: citations = [3,0,6,1,5] Output: 3 Explanation: [3,0,6,1,5] means the researcher has 5 papers in total and each of them had received 3, 0, 6, 1, 5 citations respectively. Since the researcher has 3 papers with at least 3 citations each and the remaining two with no more than 3 citations e..
Don't stop 훈
'algorithm' 카테고리의 글 목록