본문 바로가기

분류 전체보기

(172)
백준 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..
자바언어의 구조와 기본문법 자바언어의 특징 1. 자바는 단순하다. C언어와 C++언어의 복잡한 기능을 제외하여 코드를 단순하게 작성할 수 있음 EX) C++의 전위처리, 포인터사용, 다중상속, 구조체, GOTO문, 연산자 중복가능... 가비지 컬렉터(Garbage Collector)에 의한 자동 메모리 관리로 할당된 메모리 해제를 신경쓰지 않아도 됨 C와 C++언어에 비해 작고 간편하다 2. 자바는 객체지향적이다. 자바는 객체지향 개념이 적용된 C++을 기초로 하여 만들어진 언어 (객체지향 언어 : 언어라는 객체를 사용해서 프로그램을 작성하도록 하는 언어) 객체지향을 사용하게 되면 재사용성을 높일 수 있음 단순히 코드의 재사용을 넘어선 객체의 재사용을 뜻함 프로그램 개발에 필요한 수많은 클래스 라이브러리들을 API로 제공함 3. ..
그리디 - 구명보트 / 파이썬 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)..
힙 - 이중우선순위큐 / 파이썬 import heapq def reset(heap): temp = [] for h in heap: heapq.heappush(temp, -h) return temp def solution(operations): min_heap, max_heap = [], [] for oper in operations: op, num = oper.split() num = int(num) if op == 'I': heapq.heappush(min_heap, num) heapq.heappush(max_heap, -num) elif min_heap and op == 'D': if num == 1: h = heapq.heappop(max_heap) min_heap = reset(max_heap) else: heapq.heappo..