일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 프로그래머스
- Interview Preparation Kit
- 머신러닝
- 백준
- Algorithm
- 파이썬
- [sqld]자격증합격
- 격파르타 장점
- candies
- Special String Again
- python
- Max Array Sum
- 구슬탈출2
- 야근지수
- Roads and Libraries
- Reverse Shuffle Merge
- Find the nearest clone
- 해커랭크
- DFS: Connected Cell in a Grid
- programmers
- 격파르타 후기
- BFS: Shortest Reach in a Graph
- hackerrank
- 알고리즘
- 피보나치 함수
- 코딩테스트
- 매칭점수
- Recursion: Davis' Staircase
- 격파르타 합격후기
- Common Child
- Today
- Total
목록Algorithm (11)
Archive
https://www.hackerrank.com/challenges/ctci-connected-cell-in-a-grid/problem DFS: Connected Cell in a Grid | HackerRank Find the largest connected region in a 2D Matrix. www.hackerrank.com 풀이 0과 1로 구성된 grid가 주어지면, 1을 기준으로 한 영역의 최댓값을 구하는 문제. 8가지 방향에 1이 있으면 같은 영역이라 가정.(왼쪽 대각선 위부터 시계방향) visited를 확인하기 위한 matrix 만들고, 방향 정보 리스트 만들고, stack을 사용해 dfs 구현하면 됨. def maxRegion(grid): n = len(grid) m = len(grid..
https://www.hackerrank.com/challenges/ctci-bfs-shortest-reach/problem BFS: Shortest Reach in a Graph | HackerRank Implement a Breadth First Search (BFS). www.hackerrank.com 풀이 그래프와 시작노드가 주어졌을 때 BFS로 다른 노드까지의 depth를 구하는 문제. 도달할 수 없으면 -1 리턴. BFS로 depth를 구할 때, 아래와 같은 순서대로 풀면 됨. 먼저 start_node를 정의(혹은 주어짐). 방문 정보를 저장할 visited 리스트 0으로 초기화. start_node에 대해서는 1로 처리 queue에 start_node 저장. depth는 dictionary를..
https://www.hackerrank.com/challenges/find-the-nearest-clone/problem Find the nearest clone | HackerRank Find the shortest path length between any two nodes with the given condition. www.hackerrank.com 풀이 그래프 정보와 각 노드의 색깔 저보가 주어짐. 특정 색깔을 입력받았을 때 같은 색깔의 다른 노드에 도달할 수 있는 최단 거리를 구하는 문제 먼저 adj_matrix를 만들어주는데, 파이썬의 dictionary를 사용. key : node, value : [인접 노드] 방향이 없기 때문에 graph_from, graph_to에 있는 노드를 번갈아..
https://www.hackerrank.com/challenges/torque-and-development/problem Roads and Libraries | HackerRank Help the ruler of HackerLand determine the cheapest way to give his citizens access to libraries. www.hackerrank.com 풀이 그래프가 주어졌을 때 dfs로 전체 node를 방문하기 위한 경로를 세는 문제 첫 번째로 도서관 짓는 비용 c_lib이 길을 설치하는 비용 c_road보다 작을 경우 각 node에 도서관을 짓는다고 보면 됨. dictionary를 사용해 인접행렬을 구현했고, 방향이 없기 때문에 시작노드, 끝 노드를 각각의 valu..
https://programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도 programmers.co.kr 풀이 야근 시간 n시간, 처리해야할 업무 리스트 works를 입력으로 받음. 야근 지수 = n시간동안 works의 일을 처리(숫자 감소) 후 남아있는 원소의 제곱 합 n시간동안 매번 큰 수를 찾아서 1씩 감소시킨 후 제곱합을 구하면 됨. 리스트의 내장함수 [].index(element)는 O(n)이기 때문에 시간초과 남. "리스트의 max valu..
https://www.hackerrank.com/challenges/ctci-recursive-staircase/problem Recursion: Davis' Staircase | HackerRank Find the number of ways to get from the bottom of a staircase to the top if you can jump 1, 2, or 3 stairs at a time. www.hackerrank.com 풀이 계단을 1칸, 2칸, 3칸 올라갈 수 있을 때, n을 입력으로 받았을 때 가능한 모든 경우의 수 찾는 문제. 재귀함수로 풀지 않고, memoization으로 풀 수 있음. bottom-up으로 풀었고, 식은 next_step = next_step-1 + next..
https://www.hackerrank.com/challenges/abbr/problem Abbreviation | HackerRank Make two strings equal www.hackerrank.com 풀이 두 개의 문자열 a, b를 입력받음. 문자열 a를 다음 두 가지 방법을 사용해 문자열 b를 만들 수 있으면 "YES"를, 아니면 "NO"를 출력하는 문제 문자열 a의 소문자를 대문자로 0개 이상 바꿀 수 있음. 문자열 a의 소문자를 모두 제거. a = AbcDE, b = ABDE일 때, ABcDE로 b -> B로 바꾼 뒤, 소문자를 모두 제거하면 ABDE가 되므로 b를 만들 수 있음. Dynamic programming을 사용해서 품. 처음에는 대소문자 상관없이 a의 j번째 문자열 = b의..
https://www.hackerrank.com/challenges/max-array-sum/problem Max Array Sum | HackerRank Find the maximum sum of elements in an array. www.hackerrank.com 풀이 입력으로 정수로 구성된 arr를 받을 때, 이웃하지 않은 element와의 최대합을 구하는 문제 n1, n2, n3 3개만 있고 swap해가면서 정답을 구할 수 있음. 보통 dp[i] = i번째 원소까지 봤을 때 최대합 으로 생각해 문제를 접근 n2를 초기화할 때 arr[1]로 하지 말고 max(2번째 원소까지) 음수 값도 존재하기 때문에, i번째 원소가 최대인 경우도 있음. max 값을 update할 때 자기 자신이 최대인 경우도..