Algorithm/Python

Algorithm/Python

[파이썬/백준 1697] 숨박꼭질 BFS

www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌..

Algorithm/Python

[파이썬/백준 2178] 미로 탐색 BFS

www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 처음에는 모든 경로 탐색하는 문제에 익숙해져있어서 DFS를 사용해서 구현했다가 시간초과로 실패했다. 그래서 알아보니 BFS와 DFS에는 다음과 같은 차이가 있었다. BFS : 최단 경로를 보장한다. 두 노드간의 최단(임의) 경로를 찾고 싶을 때 사용한다. 큐를 사용한다. 재귀를 통해 구현할 수 없다. DFS : 모든 경로를 탐색한다. → 시간복잡도가 매우 커진다. BFS 보다 구현이 간단하다. 스택을 사용한다. 재귀를 통해 구현할 수 있다. ..

Algorithm/Python

[LeetCode - Top Interview Questions(Easy, Python3)]Strings

1. Reverse String class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """ s.reverse() in-place라 reverse()를 사용했지만, slicing(s[:] = s[::-1])이 조금 더 빠르다. 2. Reverse Integer class Solution: def reverse(self, x: int) -> int: if x == 0: return 0 result = int(str(abs(x))[::-1]) # 32-bit 정수 범위를 넘은 경우 0으로 처리 if result2**31-1: return 0 # x가 양..

Algorithm/Python

[LeetCode - Top Interview Questions(Easy, Python3)]Array

리트코드 Top Interview Questions 챕터 1 Array 전체 Python3 풀이 Remove Duplicates from Sorted Array class Solution: def removeDuplicates(self, nums: List[int]) -> int: i = 0 while i int: profit = 0 for i in range(len(prices)-1): if prices[i] None: """ Do not return anything, modify nums in-place instead. """ while k!=0: nums.insert(0, nums.pop()) k -= 1 k번만큼 nums 배열 맨 뒤의 원소를 맨 앞으로 이동시키는 문제다. Contains Dupl..

Algorithm/Python

[프로그래머스 LV2]이진 변환 반복, 영어 끝말잇기

문제 - programmers.co.kr/learn/courses/30/lessons/70129?language=python3 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr import re def solution(s): count, num_zero = 0, 0 while 1: tmp = len(re.sub('[0]', '', s)) num_zero += len(s)-tmp s = format(tmp, 'b') count += 1 if s == '1': break return [count, num_zero] regular expression과 format 을 사용하면 간단하게 풀 수 있는 문제였다. 문제 - programmers.co.kr/learn/courses/30/lesso..

박한결
'Algorithm/Python' 카테고리의 글 목록 (5 Page)