Python/알고리즘 문제풀이

Python/알고리즘 문제풀이

[백준][파이썬] 9184번 신나는 함수 실행

백준 온라인저지 9184번 신나는 함수 실행 문제풀러 바로가기👇👇👇👇👇👇 https://www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 문제풀이 문제에 점화식이 주어지기 때문에 그것을 그대로 사용하면 된다 다만 if dp[a][b][c]: return dp[a][b][c] 를 통해 재귀함수가 반복되지 않도록만 하자. dp = [[[0]*21 for _ in range(21)] for _ in range(21)] def w(a, b, c): if a 20: ret..

Python/알고리즘 문제풀이

[백준][파이썬] 1654번 랜선 자르기

백준 온라인저지 1654 랜선 자르기 문제풀러 바로가기👇👇👇👇👇👇 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 문제풀이 이 문제는 이분탐색을 이용해야하는 문제이다. start는 1로 잡고, 랜선 중 최대길이를 end로 정한 다음 이분 탐색을 하면 다음과 같다. 첫 번째 mid는 402cm이다. 402cm로 자르면 랜선이 5개 밖에 나오지 않기 때문에 mid를 mid = (start + mid - 1) // 2 로..

Python/알고리즘 문제풀이

[백준][파이썬] 10989번 수 정렬하기 3

백준 온라인저지 10989번 수 정렬하기 3 문제풀러 바로가기👇👇👇👇👇👇 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제풀이 자세히 보면 메모리 제한이 8MB인 반면 시간제한은 널널하다. sort() 함수를 사용하면 메모리제한을 넘기기 때문에 계수정렬 을 사용해야한다. import sys cnt = [0] * 10000 n = int(sys.stdin.readline()) for i in range(n): cnt[int(sys.stdin.readline())..

Python/알고리즘 문제풀이

[프로그래머스 연습문제] 124 나라의 숫자

프로그래머스 연습문제 문제풀러 바로가기👇👇👇👇👇👇 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 문제풀이 124나라의 숫자는 기본적으로 3진수와 비슷하다. 3진법에서는 숫자를 0, 1, 2 순서로 표현한다면 124나라에서는 4, 1, 2 순서대로 숫자를 표기한다. 그런데 약간 다른 점이 있다. 1의 자리 숫자일 때, 3의 배수일 때는 일반 3진법 표기와 다르게 표기된다는 점이다. -3의 배수가 아닐 때 10진법 3진법 124나라 1 1 1 5 12 12 7 21 21 3진법과 124나라의 표기가 동일하다는 것을 확인할 수 있다. -3의 배수일 때 10진법 3진법 124나라 3 1..

Python/알고리즘 문제풀이

[백준][파이썬] 점프왕 쩰리(small)

백준 온라인저지 점프왕 쩰리(small) 문제풀러 바로가기👇👇👇👇👇👇 점프왕 쩰리(Small) 문제풀이 from collections import deque n = int(input()) graph = [] for i in range(n): graph.append(list(map(int, input().split()))) dx = [1, 0] dy = [0, 1] def bfs(x, y): queue = deque() queue.append((x, y)) visit = [[False]*n for _ in range(n)] while queue: x, y = queue.popleft() move = graph[x][y] if move == -1: return True for i in range(2): nx..

Python/알고리즘 문제풀이

[백준][파이썬] DFS와 BFS

백준 온라인저지 DFS와 BFS 문제풀러 바로가기👇👇👇👇👇👇 DFS와 BFS 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 문제풀이 from collections import deque # 입력받기 n, m, v = map(int, input().split()) graph = [[] for _ in range(n+1)] for i in range(m): a, b = map(int, input().split()) graph[a].append(b) graph[b].appen..

gakko
'Python/알고리즘 문제풀이' 카테고리의 글 목록 (2 Page)