알고리즘 119

<백준> 7662번 파이썬 알고리즘 [최소,최대 힙]

import sys import heapq T = int(sys.stdin.readline()) result = [] for i in range(T): max_arr = [] min_arr = [] visit = [False] * 1_000_001 K = int(sys.stdin.readline()) count = 0 for i in range(K): S, num = sys.stdin.readline().split() if S == "I": # 튜플의 첫번째로 인해 우선순위 바뀜 heapq.heappush(max_arr, (-int(num), i)) heapq.heappush(min_arr, (int(num), i)) # True == 아직 지워지지 않음 visit[i] = True else: if in..

알고리즘 2021.11.02

<백준> 2630번 파이썬 알고리즘 [재귀함수]

import sys # 입력 초기화 n = int(input()) color_paper = [list(map(int, sys.stdin.readline().split())) for _ in range(n)] # white, blue 총 갯수 w = 0 b = 0 # cut 함수 def cut(x, y, n): global w, b check = color_paper[x][y] for i in range(x, x + n): for j in range(y, y + n): if color_paper[i][j] != check: # 1사분면 cut(x, y, n // 2) # 2사분면 cut(x, y + n//2, n // 2) # 3사분면 cut(x + n//2, y, n // 2) # 4사분면 cut(x +..

알고리즘 2021.10.31

<백준> 1676번 자바 알고리즘

굉장히 간단해 보였지만 어떻게 풀어야 간단할지 잘 몰라서 다른 블로그들을 참고했다 뒤에 0이 생기는 경우는 10이 곱해져야 한다 => 2 * 5 의 개수이다 숫자가 커질수록 2의 제곱은 충분히 많으므로 5의 갯수에 기준을 두고 문제를 풀면 되겠다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.StringTokenizer; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRe..

알고리즘 2021.10.23

<백준> 1107번 자바 알고리즘

import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class B1107 { static List list = new ArrayList(); private static int chk(int num) { // 해당 숫자가 list에 포함 되어있는지 ? 버림 : 숫자 길이 카운트 int length = 0; if(num ==0) return list.contains(num) ? 0 : 1; while(num > 0) { if(list.contains(num % 10)) return 0; length++; num /= 10; } return length; } public static void main(String..

알고리즘 2021.07.28