일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩테스트
- 프로그래머스
- linux
- 네트워크
- 순열
- 동적프로그래밍
- AI
- DFS
- 코딩 테스트
- 파이썬
- kick start
- 브루트포스
- nlp
- google coding competition
- 프로그래밍
- 그래프
- OS
- BFS
- 알고리즘
- 구글 킥스타트
- 운영체제
- 킥스타트
- 백준
- dp
- 동적 프로그래밍
- PYTHON
- 딥러닝
- CSS
- 코딩
- 리눅스
- Today
- Total
목록분류 전체보기 (312)
오뚝이개발자
문제설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미입니다. 입출력 예 입출력 예에 대..
문제설명 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다. 제한사항 섬의 개수 n은 1 이상 100 이하입니다. costs의 길이는 ((n-1) * n) / 2이하입니다. 임의의 i에 대해, costs[i][0] 와 costs[i] [1]에는 다리가 연결되는 두 섬의 번호가 들어있고, costs[i] [2]에는 이 두 섬을 연결하는 다리를 건설할 때 드는 비용입니다...
커밋 메시지를 통일된 양식으로 작성하면 추후 어떠한 부분이 변경되었는지 알기도 쉽고 협업을 할 때도 도움이 된다. 따라서 메시지를 작성하는 컨벤션을 정리해보려고 한다. 커밋 메시지는 크게 제목(Title), 본문(Body), 꼬리말(Footer)의 세 부분으로 구성된다. Type : Title Body Footer Type 커밋하는 메시지의 타입을 설명해준다. 예를 들어, 버그 수정인지 새로운 기능의 추가인지 등이다. feat : 새로운 기능, 코드 추가 add : 파일 추가 fix : 버그 수정 refactor : 코드 리팩토링 docs : 문서 수정 style : 코드 형식, 정렬, 주석 등의 변경(동작에 영향을 주지 않는 변경사항) test : 테스트 코드에 관련된 변경 사항 chore : 빌드 업..
문제설명 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들면, 문자열 s가 abcdcba이면 7을 return하고 abacde이면 3을 return합니다. 제한사항 문자열 s의 길이 : 2,500 이하의 자연수 문자열 s는 알파벳 소문자로만 구성 입출력 예 입출력 예에 대한 설명 입출력 예 #1 4번째자리 'd'를 기준으로 문자열 s 전체가 팰린드롬이 되므로 7을 return합니다. 입출력 예 #2 2번째자리 'b'를 기준으로 aba가 팰린드롬이 되므로 3을 return합니다. 풀이 주어진 문자열 s의 부분 문자열들을 모두 검..
문제설명 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합니다. 빈 큐에 데이터를 삭제하라는 연산이 주어질 경우, 해당 연산은 무시합니다. 입출력 예 입출력 예에 대한 설명 16을 삽입 후 최댓값을 삭제합니다. 비어있으므로 [0,0]을 반환합니다. 7,5,-5를 삽입 후 최솟값을 삭제합니다. 최대값 7, 최소값 5를 반환합니다. 풀이 굳이 힙을 사용하지 않고도 풀 수 있다. 구현이 중심인 문제이기에 문제의 조건에 따라 if문을 적절히 사용하여 구현하면 된다. def solut..
파이썬의 sorted()는 정렬 조건을 설정해줄 수 있다. 여러 개의 요소를 갖는 튜플을 원소로 갖는 리스트라면 두 번째 요소값을 기준으로 정렬한다던가 혹은 lambda 함수를 이용하면 다중 조건으로 설정해줄 수도 있다. a = [(4,0), (4,3), (4,2), (3,2), (2,1), (1,0)] # 인자 없이 sorted()를 사용하면 리스트 아이템의 각 요소 순서대로 정렬 # 첫 번째 요소가 같으면 두 번째 요소로 비교 b = sorted(a) print(b) # [(1, 0), (2, 1), (3, 2), (4, 0), (4, 2), (4, 3)] # key인자에 lambda 함수를 넘겨주면 반환값을 가지고 비교해 정렬 # 이 때, key로 전달되지 않은 요소에 대해선 정렬하지 않음 c = ..
파이썬에서 리스트를 정렬해야하는 경우가 많다. 이 때 사용할 수 있는게 .sort()와 sorted()이다. 여기선 sort()와 sorted()의 차이 그리고 오름차순, 내림차순으로 정렬하는 방법을 살펴보자. sort()와 sorted() a = [1, 5, 3, 8, 4] a.sort() print(a) # [1, 3, 4, 5, 8] b = [1, 5, 3, 8, 4] print(sorted(b)) # [1, 3, 4, 5, 8] print(b) # [1, 5, 3, 8, 4] sort()는 리스트형의 메소드이고, sorted()는 파이썬 내장함수이다. a.sort()라고 했을 때 원래의 리스트 a의 결과가 정렬된 형태도 변경되어 저장된 것을 알 수 있다. 이에 반해, sorted(b)의 경우 리스..
문제설명 고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다. 고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하세요. 제한사항 차량의 대수는 1대 이상 10,000대 이하입니다. routes에는 차량의 이동 경로가 포함되어 있으며 routes[i][0]에는 i번째 차량이 고속도로에 진입한 지점, routes[i][1]에는 i번째 차량이 고속도로에서 나간 지점이 적혀 있습니다. 차량의 진입/진출 지점에 카메라가 설치되어 있어도 카메라를 만난것으로 간주합니다. 차량의 진입 지점, 진출..