목록분류 전체보기 (431)
mojo's Blog

import java.util.*; public class Main { enum Week {월,화,수,목,금,토,일} public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); int []n= {1,2,3,4,5}; String []names= {"사과","배","바나나","체리","딸기","포도"}; int sum=0; for(int k:n) { System.out.print(k+" "); sum+=k; } System.out.println("합은 "+sum); for(String s:names) { System.out.print(s+" "); } Syst..

문제 링크 => 19541번: 역학 조사 (acmicpc.net) 19541번: 역학 조사 2020년, 신종 전염병이 유행하여 UCPC국 질병관리본부에서 역학 조사를 하고 있다. UCPC국의 인구는 총 $N$명이며 각각 $1$, $2$, $\cdots$, $N$번의 주민번호가 붙어있다. 질병관리본부는 지금까지 $M$개의 www.acmicpc.net Greedy 알고리즘 문제이다. 이 문제는 시간순으로 모임의 정보가 주어져 있으며 전염된 결과를 제공해주기 때문에 역으로 접근하여 문제를 해결하면 풀리는 문제이다. 즉, 역순으로 해당 그룹에 있는사람들의 전염된 결과를 확인하고 모든 사람들이 전염된 경우와 한 사람이라도 전염되지 않은 경우 두 케이스를 나눠서 보는게 중요하다. 1. 모든 사람들이 전염된 경우 =..

문제 링크 => 19535번: ㄷㄷㄷㅈ (acmicpc.net) 19535번: ㄷㄷㄷㅈ 첫 번째 줄에 주어진 트리가 D-트리라면 D, G-트리라면 G, DUDUDUNGA-트리라면 DUDUDUNGA를 출력한다. www.acmicpc.net 트리를 활용한 경우의 수를 구하는 문제이다. 일단 G-Tree 를 구하는건 굉장히 쉽다. 현재 노드에서 이어져 있는 노드가 3개 이상인 경우 즉, n(n>=3)개로 이어져 있는 경우 G-Tree의 갯수는 nC3 = (n)(n-1)(n-2) / 3! 개이다. 그래서 모든 G-Tree를 구할 때 모든 노드를 방문하면서 n>=3 인 경우 nC3을 더해주면 그만이다. 문제는 D-Tree 이다. parent 노드와 child 노드를 잡으면서 동시에 두 노드가 연결되어 있는것은 분..

문제 링크 => 19538번: 루머 (acmicpc.net) 19538번: 루머 예제 1 0분 : 최초 유포자($1$, $6$번 사람)가 루머를 생성한다. 1분 : $1$번 사람은 $2$, $3$번 사람에게 루머를 퍼뜨린다. $2$번 사람은 주변인 $2$명 중 $1$명이 루머를 믿고 있어 루머를 믿게 된다. $3$ www.acmicpc.net BFS 문제이다. 노드와 노드는 양방향으로 이어져 있으며 문제에서 주변인의 절반 이상이 루머를 믿을 때 본인도 루머를 믿는다는 조건을 고려하여 다음 노드로 방문하도록 하는것이 이 문제의 핵심이다. 1. 배열 rumor[x] 를 설정하여 다음 노드로 이동할 때 rumor[next]++ 를 해준다. ( next 사람이 루머를 믿는 수를 1 증가시킴) 2. rumor[n..
문제 링크 => 19539번: 사과나무 (acmicpc.net) 19539번: 사과나무 첫 번째 줄에 모든 나무가 갊자가 바라는 높이가 되도록 물뿌리개를 통해 만들 수 있으면 “YES”를, 아니면 “NO”를 따옴표를 제외하고 출력한다. www.acmicpc.net 그리디 알고리즘 문제이다. 1과 2를 동시에 사용하여 나열된 나무의 높이를 만들어 내도록 하는 문제이다. 이때 다음과 같은 예는 성립하지 않는다. [1 1 2 2 2] => 마지막에 2만 남으므로 성립하지 않음 [1 1 1 2 2 2 2] => 이 또한 마지막에 2만 남으므로 성립하지 않음 즉, 합이 3의배수가 아닌 경우는 무조건 "NO" 이다. 그리고 합이 3의 배수일때의 예를 살펴보도록 한다. [1 1 2 2] => 1, 2를 모두 사용하여..

문제 링크 => 10090번: Counting Inversions (acmicpc.net) 10090번: Counting Inversions A permutation of integers from 1 to n is a sequence a1, a2, ..., an, such that each integer from 1 to n is appeared in the sequence exactly once. Two integers in а permutation form an inversion, when the bigger one is before the smaller one. As an example www.acmicpc.net A permutation of integers from 1 to n is a sequ..