본문 바로가기
728x90

분류 전체보기88

[백준] 13023 - ABCDE Python https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net import sys from collections import defaultdict def dfs(position, depth): global finished visited[position] = 1 if depth == 4: finished = True return for i in relationship[position]: if not visited[i]: dfs(i, depth + 1) visited[i] = 0 N, M = map(int, input().split(" ")) relationship .. 2023. 5. 25.
[백준] 17070 - 파이프 옮기기1 Python https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net # 가로 파이프 > 가로, 대각선 # 세로 파이프 > 세로, 대각선 # 대각선 파이프 > 대각선, 가로, 세로 # board : 3차원 짐 그래프 # 아이디어: # (1) 첫 번째 행에는 항상 가로 파이프만 올 수 있따. # (2) 1열에는 파이프의 끝이 올 수 없다. (항상 시작 파이프가 가로이기 때문) # (3) 가로 파이프 : 왼쪽 칸의 가로 파이프 개수 + 왼쪽 칸.. 2023. 5. 23.
[백준] 10815 - 숫자 카드 Python https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net import sys input = sys.stdin.readline def binary_search(i): start = 0 end = N - 1 while start 2023. 5. 23.
알고리즘 - 선형 탐색 / 이분 탐색 선형 탐색 알고리즘 (Linear Search Algorithm) 선형 탐색은 하는 값을 리스트의 맨 앞부터 끝까지 차례대로 찾아 나가는 것이다. 시간 복잡도 : O(n) 장점 : 검색 방법 중 가장 단순하여 구현이 쉽고 정렬되지 않은 리스트에도 사용 가능하다. 단점 : 검색 길이가 길면 비효율적이다. def linear_search(element, some_list): for i in range(len(some_list)): if element == some_list[i]: return i return None print(linear_search(2, [2, 3, 5, 7, 11])) print(linear_search(0, [2, 3, 5, 7, 11])) print(linear_search(5, [.. 2023. 5. 23.
[백준] 2839 - 설탕 배달 Python https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net import sys input = sys.stdin.readline N = int(input()) dp = [0] * 1001 dp[1] = dp[3] = "SK" dp[2] = "CY" # 1:상근 2:창영 3:상근 4:창영 5:상근 6:창영 for i in range(4, 1001): if dp[i - 1] == "SK": dp[i] = "CY" else: dp[i] = "SK" print(dp[N]) 2023. 5. 23.
[백준] 2839 - 설탕 배달 Python https://www.acmicpc.net/group/practice/view/17857/2 로그인 www.acmicpc.net import sys input = sys.stdin.readline N = int(input()) dp = [5001] * (N + 5) dp[3] = dp[5] = 1 for i in range(6, N + 1): dp[i] = min(dp[i - 3], dp[i - 5]) + 1 if dp[N] >= 5001: print("-1") else: print(dp[N]) 2023. 5. 22.
728x90