본문 바로가기

알고리즘

(138)
백준 3109 빵집 / java 자바 www.acmicpc.net/problem/3109 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net import java.util.*; import java.io.*; public class Main_빵집 { static int R, C, result; static boolean tf; static char[][] map; static boolean[][] ck; public static void main(String[] args) throws IOException { BufferedReader br = new Buffere..
백준 17135 캐슬 디펜스 / java 자바 www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net import java.util.*; import java.io.*; public class Main_캐슬디펜스 { static int N, M, D; static int[][] map; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..
백준 15686 치킨배달 / java 자바 www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net import java.util.*; import java.io.*; public class Main_치킨배달 { static int n, m, min = Integer.MAX_VALUE; static int[][] map; static ArrayList home = new ArrayList(); static ArrayList chi = new ArrayList(); static Stack ..
백준 2961 도영이가 만든 맛있는 음식 / java 자바 www.acmicpc.net/problem/2961 2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net import java.util.*; import java.io.*; public class Main { static int N, min = Integer.MAX_VALUE; static boolean[] ck; static ArrayList S = new ArrayList(); static ArrayList B = new ArrayList(); static void sol(int cnt, ..
백준 17478 재귀함수가 뭔가요? / java 자바 www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net import java.util.Scanner; public class Main_17478 { static int depth; static String[] str; static void print(int n, String s) { for (int i = 0; i < n*4; i++) { System.out.print("_"); } System.out.println(s); } static void recur(in..
그리디 - 구명보트 / 파이썬 def solution(people, limit): answer, front, back = 0, 0, len(people)-1 people.sort(reverse=True) while front
그리디 - 조이스틱 / 파이썬 def solution(name): lst = [min(ord(n)-ord('A'), ord('Z')-ord(n)+1) for n in name] idx, answer = 0, 0 while True: answer += lst[idx] lst[idx] = 0 if sum(lst) == 0: break left, right = 1, 1 while lst[idx-left] == 0: left += 1 while lst[idx+right] == 0: right += 1 if left < right: answer += left idx -= left else: answer += right idx += right return answer programmers.co.kr/learn/courses/30/lessons/..
그래프 - 가장 먼 노드 / 파이썬 from collections import deque def bfs(n, adj): q = deque() q.append([1, 0]) ck = [0] * n while q: cnt, nod = q.popleft() if ck[nod] == 0: ck[nod] = cnt cnt += 1 for a in adj[nod]: q.append([cnt, a]) ret = 0 for c in ck: if c == max(ck): ret += 1 return ret def solution(n, edge): adj = [[] for _ in range(n)] for e in edge: x = e[0]-1 y = e[1]-1 adj[x].append(y) adj[y].append(x) return bfs(n, adj)..