Cute Running Puppy
반응형

algorithm 42

2667_단지번호붙이기

2667번: 단지번호붙이기 (acmicpc.net) 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 접근 방법 상하좌우를 모두 돌며 집이 연결되어 있는지 확인 -> DFS 사용 1. 노드 == 1이면 0으로 변경하고 상, 하, 좌, 우 확인 후 return True 2. 노드 == 0 이면 return False 3. global 변수를 사용하여 상하좌우 확인할 때 집의 개수 추가 주의 할 점 1. 상하좌우를 확인 할 때 범위를 넘어갈 수 있으므로 미리 예외 처리 하기 2. graph 값 int 로 변환하기 정..

algorithm/Baekjoon 2023.04.24

DFS

Depth First Search 깊이 우선 탐색 그래프의 깊은 부분을 우선적으로 탐색하는 알고리즘 특정 경로로 탐색하다가 특정 상황에서 최대한 깊숙히 들어가 노드를 방문한 뒤, 다시 돌아가 다른 경로로 탐색하는 알고리즘 다음 분기로 넘어가기 전 해당 분기를 완벽하게 탐색하는 방법 BFS 보단 느리다 (단순 검색 속도) 백트래킹과 연관된다 DFS를 사용하는 경우 모든 노드를 방문하고자 할 때 순회를 하고자 할 때 경로에 특징을 저장해야 할 때 검색 대상 그래프가 클 때 cf) 최단거리는 BFS가 유리 동작 방식 탐색 시작 노드를 스택에 삽입하고 방문 처리 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를..

최댓값과 최솟값의 초깃값 지정

최댓값 → 최솟값을 초깃값으로 최솟값 → 최댓값을 초깃값으로 sys 사용 시스템에서 지정할 수 있는 가장 크고, 작은 값을 활용 mx = -sys.maxsize mn = sys.maxsize float 사용 float을 사용하여 무한대 값을 지정 mx = float('-inf') mn = float('inf') 임의의 값 (999999 등)을 최댓값, 최솟값 등으로 설정하는 것은 가장 좋지 않은 방법이다. 파이썬은 임의 정밀도를 지원하여 사실상 무한대의 값을 지정할 수 있다. 얼마든지 지정한 값 보다 작거나, 큰 값이 들어올 수 있다. 혹은 코테 문제에서 기술되어 있는 제약 조건을 확인한 뒤 기준에 맞추어 최대, 최솟값을 처리하면 된다

[python] 238. Product of Array Except Self

Product of Array Except Self - LeetCode Product of Array Except Self - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 자신을 제외한 배열의 곱 제시된 배열에서 자신을 제외한 값들을 곱한 값들을 리턴하는 문제 주의!! 나눗셈 금지 조건 존재 배열의 모든 값들의 곱을 구하고 자기 자신으로 나누는 풀이는 불가! 풀이 옳은 풀이 자기 자신을 제외한 왼쪽 값들의 곱셈 결과와 오른쪽 값들의 곱을 곱하면 올바른 풀이를 ..

algorithm/Leetcode 2022.09.06

[python] 561. Array Partition

Array Partition - LeetCode Array Partition - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 배열 파티션 1 주어진 배열에서 2개의 값으로 이루어진 페어를 생성하고 페어의 값의 최솟값들의 합이 최대가 될 때의 합을 리턴하는 문제 정말로 모든 페어를 구한다 ? -> x 페어의 최소값들의 합이 최대가 되어야 한다는 조건을 이용하여 페어를 구해보자 풀이 오름차순 풀이 2개의 원소를 가진 값들의 최솟값의 합을 구해야 한다 그러나 모든 ..

algorithm/Leetcode 2022.09.05

[python] 15. 3sum

3Sum - LeetCode 3Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 세 수의 합 입력받은 숫자 배열에서 세 수를 더하여 0이 되는 3수의 조합을 반환하는 문제 풀이 브루트 포스 모든 수를 조합하여 더하여 합이 0이 되는 조합을 찾으면 풀이할 수 있다. # 브루트 포스 # Time Limit Exceeded from typing import List class Solution: def threeSum(self, nums: List[int]) -..

algorithm/Leetcode 2022.08.02

[python] 1. Two Sum

Two Sum - LeetCode Two Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 두 수의 합 더하여 target의 값이 되는 두 값의 인덱스를 반환하는 문제 매우 쉬운 문제이나 여러 가지 방법으로 풀이할 수 있어 코딩 인터뷰에서 높은 빈도로 출제되는 문제이다. 풀이 다양한 방법으로 풀이가 가능한 문제이다. 브루트 포스로 풀이 브루트 포스 (brute-force): 무차별 대입 방식 모든 조합을 다 더해서 일일이 확인해본다면 브루트 포스 방식을 ..

algorithm/Leetcode 2022.07.24

[python]5. Longest Palindromic Substring

Longest Palindromic Substring - LeetCode Longest Palindromic Substring - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 가장 긴 팰린드롬 부분 문자열 입력된 문자열에서 가장 긴 팰린드롬을 찾아 반환하는 문제 1. 팰린드롬을 찾고 2. 가장 긴 팰린드롬인지 확인 틀린 풀이 class Solution: def longestPalindrome(self, s: str) -> str: # 팰린드롬을 담을 리스트 p..

algorithm/Leetcode 2022.07.24

[python] 937. Reorder Data in Log Files

https://leetcode.com/problems/reorder-data-in-log-files/ Reorder Data in Log Files - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 기준에 맞추어 로그를 재정렬하는 문제 1. 로그의 가장 앞 부분은 식별자 2. 문자로 구성된 로그가 숫자로 구성된 로그보다 앞에 온다 3. 식별자는 순서에 영향을 미치지 않는다, 문자가 동일할경우 식별자 순으로 정렬한다 4. 숫자 로그는 입력 순서대로 정렬한다 cla..

algorithm/Leetcode 2022.03.26

[python] 344. Reverse String

https://leetcode.com/problems/reverse-string/ Reverse String - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문자열을 뒤집는 문제 (return을 사용하면 안된다) 풀이 1. class Solution: def reverseString(self, s: List[str]) -> None: s.reverse() reverse 함수를 사용 (reverse 함수는 리스트에만 적용가능) (결과) Runtime: 379 m..

algorithm/Leetcode 2022.03.26