일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준#boj#12755
- 백준#BOJ#1939#중량제한
- 백준#BOJ#12865#평범한배낭
- 백준#boj#16932#모양만들기
- 백준#BOJ#8012#한동이는영업사원
- 백준#BOJ#14501#퇴사#브루트포스
- 백준#BOJ#2615#오목
- Today
- Total
목록분류 전체보기 (249)
순간을 성실히, 화려함보단 꾸준함을
목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것(필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 Process 와 Thread란? 목차에 들어가기 앞서 필자는 자바가 아닌 운영체제의 시선으로 프로세스와 쓰레드에 관해 이야기를 살짝 하고 싶다. 많이들 어려워 하는 개념이다. 프로세스가 뭔지, 쓰레드가 뭔지, 그렇다면 쓰레드와 프로세스의 차이점은 대체 무엇인지? 뭐가 그렇게 중요하길래 강조를 하는지 한번 천천히 알아보도록 하자. 프로세스(Process) 운영체제에서 프로세스는 하나의 작업 단위를 뜻한다. 간단히 말해서 당신이 메모장프로그램을 마우스로 더블클릭하여 실행하게 되면 더이상 하나의 메모장 프로세스가 실행되는 것이다..
https://www.acmicpc.net/problem/1451 1451번: 직사각형으로 나누기 첫째 줄에 직사각형의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 직사각형에 들어가는 수가 가장 윗 줄부터 한 줄에 하나씩 M개의 수가 주어진다. N과 M은 100보다 작거나 같은 자연수이 www.acmicpc.net 문제 : 직사각형이 주어지고 3등분의 직사각형으로 나눌때 각각의 합의 곱이 가장 큰 수를 구하시오 해설 : 처음 봤을때 어떻게 해야될지 순간 뇌절이 왔는데 직사각형을 그리다 보면 3가지로 나눌 수 있는 경우의 수는 6가지 밖에 없습니다. 각각 케이스에 해당하는 범위를 나누어서 구해주면 됩니다.(다만 이게 너무 머리가 꼬이니 침착하게 잘 조절하세요) #include using name..
목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) Exception과 Error의 차이는? 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) + (catch-with-resource) 자바가 제공하는 예외 계층 구조와 checked exception과 unchecked exception의 차이 커스텀한 예외 만드는 방법 1. Exception과 Error의 차이는? 먼저 본격적인 내용에 들어가기 앞서 예외란 무엇인지? 그리고 에러와 어떤 차이점이 있는지 부터 알아보도록 하자 예외(Exception) : 입력값의 처리가 불가능하거나, 프로그램 실행 중에 참조된 값이 잘못된 경우. 정상적인 프로그램의 흐름을 어긋나는 것을 말함 에러(Error) : 시스템..
목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스란? - 클래스들이 동작해야 될 지정하는데 사용되는 추상 자료형이다. 다수의 개발자들이 하나의 프로젝트를 개발한다고 하면 서로 구현해야 될 각 기능들을 인터페이스를 정의하게 되면 내부적으로 어떤 로직을 가지고 있던간에 상관없이 기능을 사용하는데 문제가 발생하지 않게된다. 왜 인터페이스를 사용하는가?? - 개발 코드를 수정하지 않고, 사용하는 객체를 변경할 수 있도록 하..
목표 자바 패키지에 대해 학습하자 학습할 것 (필수) package 키워드 import 키워드 클래스패스 접근지시자 package 키워드 package란? - 클래스들의 모음집을 뜻한다. 이를 통해 편리하게 프로젝트들을 관리할 수 있다. 왜 package를 사용하는가? - 각 클래스들의 고유성을 보장하기 위해서이다. 서로 다른 라이브러리에서 동일한 클래스명을 가지고 있는 파일이 존재한다면 이는 다른 패키지를 사용함으로써 충돌을 피할 수 있다. 선언방법과 규칙 상위패키지명.하위패키지명.클래스 숫자로 시작하면 안된다. _, $ 를 제외한 특수문자를 사용해서는 안된다. java로 시작하는 패키지는 자바 표준 api 에서만 사용하므로 사용해서는 안된다. package 안의 클래스명은 고유해야한다. 다른 패키지라..
https://www.acmicpc.net/problem/2421 2421번: 저금통 홍태석은 저금통 2개를 가지고 있다. 홍태석은 매일매일 하나의 저금통에 1원을 넣는다. 두 저금통에 모두 N원이 모이면 태석이는 새로운 장난감을 살 수 있기 때문에, 저금을 멈춘다. 홍태석은 www.acmicpc.net 문제 : (1,1)에서 (N,N)이 될때까지 수를 이어붙여서 나올 수 있는 소수의 횟수를 구해라 해설 : 전형적인 dp 문제입니다. 그냥 대놓고 2차원 점화식을 선언해서 dp로 푸세요 라고 알려주고 있죠 $dp[x][y]= (1,1)\ 에서\ (x,y)\ 까지\ 만들때\ 나올\ 수\ 있는\ 소수의\ 최대\ 개수$ 재귀함수를 이용해서 탑-다운 방식으로 풀어주었습니다. 소수는 에라토스체네스의 체로 걸러주었습..
https://www.acmicpc.net/problem/16986 16986번: 인싸들의 가위바위보 두 사람이 같은 손동작을 내어 무승부가 발생할 경우 경기 진행 순서상 뒤인 사람이 이긴 것으로 간주함에 다시 한 번 유의한다. 구체적으로, 경기 진행 순서는 지우, 경희, 민호 순으로 고정되 www.acmicpc.net 문제 : 문제 생략 그냥 보고 오세요;;(ㅈㅅㅈㅅ;; 너무길어 ㅠㅠ) 해설 : 후,,,문제 잘 읽어야 되요 ㅠㅠ정말로 정말로 먼저 주의해야 될 점을 말씀드리면 세명 중에 단 한명이라도 우승한다면 게임은 끝납니다. 전 처음에 무조건 지수만 우승하는 경우만 생각해주고 나머지는 이기든 지든 전혀 신경도 쓰지 않았지만 이렇게 한다면 안됩니다. 다른 사람이 우승을 해버리면 return시켜주는 방향..
목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바의 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치(Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바의 상속의 특징 상속이란? - 부모클래스의 변수 또는 메소드를 자식 클래스가 물려받아 그대로 사용 가능하게 해주는 것을 뜻한다. 부모클래스를 superclass 자식클래스를 subclass라고 칭한다. extends라는 키워드를 사용하여 상속을 지정할 수 있다. class Parent{ String parent = "I'm Parent"; public void ret_Parent(){ System.out.println("I'm Parent Method"); ..
https://www.acmicpc.net/problem/2073 2073번: 수도배관공사 아기염소들이 언덕에서 풀을 뜯고 놀다 보면 항상 도중에 목이 마르곤 했다. 그들은 불편함을 참지 못하고 수도관을 설치하여 거리 D(7 D >> P; v.resize(P); for (int i = 0; i > v[i].first >> v[i].second; dp[0] = (int)(1 = 0; j--) { if (j - v[i].first < 0)continue; dp[j] = max(dp[j], min(dp[j - v[i].first], v[i].second)); } cout
이진탐색트리 package com.example.demo; public class Node { int value; Node left,right; Node(int value){ this.value=value; this.left=this.right=null; } //Node 추가 public Node addNode(Node cur,int value){ if(cur==null)return new Node(value); if(cur.value
목표 자바의 Class에 대해 학습하세요. 학습할 것(필수) 클래스 정의하는 법 객체 만드는 방법(new 키워드 이해하기) 메서드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 (번외)Nested Class 과제(Optional) int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. 클래스 정의하는 법 클래스란?? =- 변수(데이터,속성)과 메서드(행위)를 가지고 있는 집합을 뜻합니다. cl..
https://www.acmicpc.net/problem/9527 9527번: 1의 개수 세기 두 자연수 A, B가 주어졌을 때, A ≤ x ≤ B를 만족하는 모든 x에 대해 x를 이진수로 표현했을 때 1의 개수의 합을 구하는 프로그램을 작성하시오. 즉, f(x) = x를 이진수로 표현 했을 때 1의 개수라 www.acmicpc.net 문제 : x부터 y까지의 수를 이진수로 표현했을때 나타나는 1의 개수들의 합을 구하시오 해설 : 와 이거 너무어렵습니다 진짜 ㅠㅠㅠㅠㅠ 엄청 고생했습니다. 사실 도움을 받았어요 일단 $\sum_{k=x}^y f(x)$ 를 풀어보면 $\sum_{k=1}^y f(x)$ - $\sum_{k=1}^{x-1} f(x)$ 이 됩니다. 그러면 우리가 할일은 $f(x)$ 를 구하면 되는..