본문 바로가기

백준42

백준 17182번 우주탐사(JAVA) package baek.gold3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main_17182우주탐사 { static int answer = Integer.MAX_VALUE; static boolean[] visited; static int[][] dist; static int N; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRead.. 2023. 9. 30.
알고리즘 - 이분탐색(Binary Search)과 매개변수 탐색(Parameter Search) (Java, Python) 1. 이분탐색1) 개념 원하는 데이터를  찾기 위해 정렬되어 있는 배열에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다.이를 위해 반드시 데이터가 정렬되어 있어야 한다. 2) 알고리즘 단계1. 배열을 정렬한다. ( 기존에 배열이 정렬되어서 주어진다면 이 과정은 생략한다.)<p data-ke-size="s.. 2023. 4. 20.
(Java)백준 11729. 하노이 탑 이동 순서 1. 문제 조건 어릴 때 많이 해보던 하노이탑!! 내가 정말 좋아하던 놀이였다 ,, 그냥 내가 알고 있던 하노이탑 규칙 그 자체 ! 원판을 옮긴 총 개수와 옮긴 과정(원판이 원래 있던 위치 원판을 옮긴 목적지)를 각각 순차적으로 출력해야 했다. 2. 아이디어 하노이 수열의 점화식을 외워본 적이 없어서 하노이 수열의 규칙부터 찾아봐야 했다. 많은 관찰과 고민을 거듭한 끝에 점화식을 찾았고, 하노이를 옮기는 과정에 전체 솔루션 내에 작은 솔루션들을 구분할 수 있게 됐다. 알고리즘 스터디원들에게 웹엑스로 필기하며 설명해준 과정도 아래 첨부한다. 내가 사고한 과정을 최대한 그대로 설명해주려고 노력했다. 규칙을 찾아간 과정은 우선, 원판 개수에 따라서 이동 과정이나 하노이 수를 관찰하고 그 과정에서 규칙성을 발견.. 2023. 3. 26.
백준(파이썬, python) - 2581번 소수 (2022.11.07) 1) 문제 2) 풀이 import sys M = int(sys.stdin.readline()) N = int(sys.stdin.readline()) numbers = list(map(int,range(M,N+1))) prime_num = [] for i in numbers: if i > 1 test = 0 for j in range(2,i): if i%j == 0: test += 1 if test == 0: prime_num.append(i) sum = 0 for i in prime_num: sum += i if len(prime_num) ==0: print(-1) else: print(sum) print(min(prime_num)) 3) 문법 및 풀이과정 앞서 풀었던 소수 찾기 풀이를 조금만 응용하면 .. 2022. 11. 7.
백준(파이썬, python) - 1978번 소수 찾기 (2022.11.07) 1) 문제 2) 풀이 import sys T = int(sys.stdin.readline()) numbers = list(map(int,sys.stdin.readline().split())) count = 0 for i in numbers: if i ==2: count+=1 elif i == 1: count +=0 else: test = 0 for j in range(2,i): if i%j == 0: test += 1 if test == 0: count += 1 print(count) 3) 문법 및 풀이과정 소수란, 1과 자기 자신을 제외한 다른 수로 나누어지지 않는 수를 의미한다. 에라토스테네스의 체를 활용할 수도 있지만 이 문제의 경우 입력값의 범위가 100이하로 그렇게 크지 않고, 시간제한도 넉넉하.. 2022. 11. 7.
백준(파이썬, python) - 2839번 설탕 배달(2022.11.07) 1) 문제 2) 풀이 import sys n = int(sys.stdin.readline()) if n%5 == 0: num = n//5 elif (n%5) != 0: if (n%5) == 3: num = (n//5) + (n%5)//3 elif n >5 and (n%5 ==1 or n%5 == 4): num = (n//5) -1 + (n%5+5)//3 elif n >10 and n%5 == 2: num = (n//5) -2 + (n%5 +10)//3 else: num = -1 print(num) 3) 문법 및 풀이과정 주어진 입력값을 3과 5의 합으로 구성하는데, 이 때 구성할 수 있는 숫자의 최소 개수를 구하라는 문제이다. 봉지의 수가 더 적기 위해서는 최대한 5kg의 봉지를 많이 사용하는 것이 좋다.. 2022. 11. 7.