www.acmicpc.net/problem/21082108번: 통계학첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.www.acmicpc.net 1. float보다 double 형이 더 넓은 범위 값2. double형을 반올림해서 int형으로 나타내기 Math.round(실수)3. 음수 범위의 수까지 count 하기 위해 양수화 하기N * 2 + 1 크기의 int형 count 배열을 선언한다. (0도 포함하기 위해 +1) import java.io.*; import java.util.*; // 210328 /* 1. 산술평균 : 전체합 / 개수, 반올림 : Math.round(float() )..
www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 🔶 String의 compareTo() 문자열의 사전적 값을 비교한다. 1. s1 == s2 : 0 2. s1 > s2 : 긍정값 3. s1 HashMap, Iterator 사용 import java.io.*; import java.util.*; // 210328 /* # String의 compareTo() - 문자열의 사전적 값을 비교한다. 1. s1 == s2 : 0 2..
11651. 좌표 정렬하기2 www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net import java.io.*; import java.util.*; // 210328 public class Main_BJ_11651_좌표정렬하기2 { public static void main(String[] args) throws Exception { //System.setIn(new FileInputStream("res/..
www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net Comparable vs Compartor 🔶 java.lang.Comparable > 정렬이 안되는 객체를 정렬 가능하게 한다. + 정렬 기준을 설정한다. 1. Comparable은 기본형 정렬에 사용하지 않는다 → 정렬 기준이 없는 객체(Object)를 정렬 가능하게 만들어주는 것이다. 2. Comparable은 다른 타입끼리도 비교가 가능하다. 🔶 ja..
www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net ✔ 문제 조건 1. 칸에는 빈 칸 (0), 벽 (1), 바이러스 (2)가 올 수 있다. 2. 바이러스는 상하좌우 인접한 빈 칸으로 퍼져나갈 수 있다. 2-1. 바이러스는 벽으로는 퍼져나갈 수 없다. 3. 빈칸에 벽을 세워 바이러스를 막을 수 있다. 무조건 3개의 벽을 세워야 한다. 4. 바이러스가 모두 퍼졌을 때까지 남아있는 빈칸을 안전 영역이라고 한다. 안전 영역의 크기의 최대값을 구해야 한다. ✔ 접근 과정 1. 무조건..
www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net ✔ 첫번째 시도 v 배열을 3차원으로 사용한다. 세번째 인자가 0이면 말, 1이면 원숭이 방식으로 움직인 경우다. 움직이기 - 2-1) 지금까지 말 방식으로 움직인 경우가 K보다 작으면 (kCnt < K) 1) 말 방식으로 움직인 후 (kCnt+1, 8방 탐색) → 큐에 넣고 방문 처리 2) 원숭이 방식으로도 움직인 후 (kCnt, 4방 탐색) → 큐에 넣고 방문 처리 - 2-2) 이미 K번 이..

www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net N개의 집을 R, G, B 색으로, 이웃과 색이 겹치지 않게 칠하는데 드는 최소 가격 → R, G, B 3가지 방향으로 접근하여 N번째 까지 드는 비용을 각각 구한 후 3개 중 최소 가격 찾기 2번째 집을 칠할 때 가격 = 1번째 집 까지 칠한 가격 + 2번째 집을 칠한 가격 3번째 집을 칠할 때 가격 = 2번째 집 까지 칠한 가격 + 3번째 집을 칠한 가격 d[i] = d[i-1] + 최..

www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net n=1일 때 d[1]은 1이 아니라 0이다. 1->1은 변환이 일어나지 않는다. DP로 풀 때는 시작값 신경쓰기. import java.io.*; import java.util.*; // 210323 public class Main_BJ_1463_1로만들기 { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.pa..