본문 바로가기

알고리즘

(158)
파이썬)그림 - BOJ https://www.acmicpc.net/status?user_id=dlwnsgml203&problem_id=1926&from_mine=1 채점 현황 www.acmicpc.net from collections import deque n, m = map(int, input().split()) arr = [] for i in range(n): a = list(map(int, input().split())) arr.append(a) max_area = 0 dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] def bfs(i, j): area = 1 q = deque() q.append((i, j)) while q: x, y = q.popleft() for k in range(4): nx = ..
파이썬)내리막길 -BOJ https://www.acmicpc.net/problem/1520 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net m, n = map(int, input().split()) arr = [] cnt = 0 for i in range(m): a = list(map(int, input().split())) arr.append(a) dx = [1, -1, 0, 0] dy = [0, 0, -1, 1] dp = [[-1] * n for _ in range(m)] def dfs(sx, sy): if sx == m-1 and s..
파이썬)안전영역 BOJ-2468 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net from collections import deque n = int(input()) max_area = 1 arr = [list(map(int, input().split()))for _ in range(n)] dx = [1, -1, 0, 0] dy = [0, 0, -1, 1] def bfs(arr, height): visit = [[False] * n for _ in range(n)] area = 0 f..
파이썬)뒤집기 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net s = input() cnt = 0 for i in range(len(s) - 1): if s[i] != s[i+1]: cnt += 1 print((cnt+1) // 2) 이 문제는 은근 어려웠다. 연속되는 수열의 개수를 구해야하나? 라고 생각해 연속 수열을 구하는 쪽으로 접근했다. 하지만 시간초과가 나오게 되었고 s의 길이가 100만인 것을 보아 하나의 반복문으로 수행해야 한다는 것을 생각해내 ..
파이썬) 토너먼트 https://www.acmicpc.net/problem/1057 n, kim, im = map(int, input().split()) if n % 2 == 1: n += 1 if kim % 2 == 1: kim += 1 if im % 2 == 1: im += 1 cnt = 1 while True: if kim % 2 == 1: kim += 1 if im % 2 == 1: im += 1 if kim // 2 == im // 2: # print(kim, im) break kim = kim // 2 # 8 4 2 1 im = im // 2 # 9 5 3 2 cnt += 1 print(cnt) 우선 어떻게 풀지 생각하는데 10분정도 소요되고 코드를 작성하는데 5분정도 걸린것 같다. 내가 생각한 것은 1. 어떻..
파이썬)수들의 합 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net s = int(input()) total = 0 count = 0 while True: count += 1 total += count if total > s: break print(count-1)
파이썬)K번째 수 https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net n = int(input()) k = int(input()) start, end = 1, n**2 result = 0 if n**2 == k: print(k) # k가 n의 제곱이면 당연히 맨 끝자리 수이므로 k를 출력한다. else: while(start < end): mid = (start+end)//2 c = 0 # mid보다 작거나 같은 숫자 계산 for i ..
파이썬)미로 탈출 https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque import copy def solution(maps): s = [] l = [] exit = [] answer = 0 visit = [[int(0) for _ in range(len(maps[0]))] for _ in range(len(maps))] for i in range(len(maps)): for j in range(len(maps[..