분류 전체보기

알고리즘

[백준] 16236번 (java 자바)

import java.util.*; public class Main { static final int INF = 987654321; static int N; static int Map[][] = new int[20][20]; static int Dr[] = {-1, 1, 0, 0}; static int Dc[] = {0, 0, -1, 1}; static class Point { int r, c, d; Point (int r, int c, int d){ this.r = r; this.c = c; this.d = d; } } static int solve(int r, int c) { int ret = 0; // 이동하는 시간 int size = 2, cnt = 2;// 상어 크기, 크기 0 되면 사이즈 업 ..

알고리즘

[백준] 14500번 (java 자바)

import java.util.*; public class Main { static int N, M, ans; static int[][] map; static int[] dy = {-1, 1, 0, 0}; static int[] dx = {0, 0, -1, 1}; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nextInt(); map = new int[N][M]; for (int i = 0; i < N; i++){ for (int j = 0; j < M; j++){ map[i][j] = sc.nextInt(); } } boolean[][] visit = new boo..

알고리즘

[백준] 9019번 (python 파이썬)

from collections import deque def oper_D(n): res = n * 2 if res > 9999: res %= 10000 return res def oper_S(n): res = n if res == 0 : return 9999 res -= 1 return res def oper_L(n): front = n % 1000 back = n // 1000 res = front * 10 + back return res def oper_R(n): #1234 -> 4123 # 1000 -> 100 front = n % 10 back = n // 10 res = front * 1000 + back return res def go(s, t): queue = deque() visited =..

알고리즘

[백준] 16928번(python 파이썬)

bfs 특징 1. queue 2. visited 여부 3. 상하좌우 => 여기선 주사위(1~6) from collections import deque def bfs(): q = deque([1]) visited[1] = True while q: now = q.popleft() for i in range(1, 7): move = now + i if 0 < move

알고리즘

[백준] 10026번(python 파이썬)

import sys sys.setrecursionlimit(100000) input = sys.stdin.readline n = int(input()) ##방문 했는지 안 했는지 구별 visited = [[False] * n for _ in range(n)] ##입력값 matrix 만들기 matrix = [list(input().rstrip()) for _ in range(n)] ##dfs 함수 만들기 def dfs(x, y): cur_color = matrix[x][y] visited[x][y] = True dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0

알고리즘

[백준] 11403번 (python 파이썬)(플로이드 와샬)

n = int(input()) grp = [[0 for col in range(n)] for row in range(n)] for i in range(n): for j, v in enumerate(map(int, input().split())): grp[i][j] = v for k in range(n): for i in range(n): for j in range(n): if grp[i][k] and grp[k][j]: grp[i][j] = 1 for i in range(n): for j in range(n): print(grp[i][j], end=" ") print() 다른 블로그들을 참고했습니다 이 문제는 '플로이드 와샬' 알고리즘을 사용합니다 플로이드 와샬에 대해 잘 와닿는 표현이 모든 '거쳐가는 ..

알고리즘

[백준] 11286번 (python 파이썬)

import heapq import sys n = int(input()) abs_n = [] for _ in range(n): x = int(sys.stdin.readline()) if x != 0: heapq.heappush(abs_n, (abs(x), x)) elif x == 0: if abs_n: print(heapq.heappop(abs_n)[1]) else: print(0) 최대 힙, 최소 힙에 대해 알면 쉽게 풀 수 있습니다

알고리즘

[백준] 17626번 (python 파이썬)

n = int(input()) n_list = [0] * (n+1) n_list[1] = 1 for i in range(2, n+1): j = 1 min_v = 4 while (j**2)

알고리즘

[백준] 11727번 (python 파이썬)

n = int(input()) d = [0, 1, 3, 5] if n < 4: print(d[n]) else: for i in range(4, n + 1): d.append((d[i - 1] + 2*d[i - 2]) % 10007) print(d[n]) 어떤식으로 해야 될지 몰랐는데 가장 뒤에 올 수 있는 경우의 수를 기준으로 잡고 생각하면 쉽게 풀린다 파란색은 차례대로 d(n - 1), d(n - 2), d(n - 2) 일 때를 얘기 한다 따라서 d[n] = d[n - 1] + 2*[n - 2] 식을 만들 수 있다

알고리즘

[백준] 9461번 (python 파이썬)

t = int(input()) for _ in range(t): s = [0, 1, 1, 1] n = int(input()) if n < 4: print(s[n]) else: for i in range(4, n+1): s.append(s[i - 3] + s[i - 2]) print(s[n]) 1, 1, 1, 2, 2, 3, 4, 5, 7, 9 규칙을 보면 n +3 번째는 n 과 n + 1 의 합이다 이것만 알면 쉽게 풀리는 문제이다

changha.
'분류 전체보기' 카테고리의 글 목록 (6 Page)