목록Java (371)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mzGhD/btrY4nuWDTj/p7kkLs0aj3LLMyVRgTxgB1/img.png)
👉 문제링크 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 🔸 문제 분석 🔸 0부터 10만까지 범위에서, 수빈이의 위치 N 부터 동생의 위치 K로 이동하는 최단 시간을 출력한다. 수빈이가 이동하는 방법은 좌우 한칸(-1, +1), 순간이동 (현위치 *2)가 있다. 주의 할 점은 이동위치와 k의 거리 차이가 가장 적은 것을 선택하는 그리디 방식으로 계산해서는 안된다. 그리디로 보면 예제 1번에서 5 - 10 - 9 - 18 - 17 에서 2번째 이동 할 때인 10위치에서 순간이동이 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rilnI/btrYH2GuBwp/Edv2KKRNp4zCbxMStlg4VK/img.png)
👉 문제링크 1954번: 화학실험 우리에게는 n가지 종류의 화학 시약 t1, t2, ..., tn과 M mg의 용액이 있다. 이 용액 중 x mg을 시약 ti에 넣으면 aix+bi만큼의 어떤 가스가 발생한다고 한다. 시약에 넣을 수 있는 용액의 양은 자연수이 www.acmicpc.net 🔸 문제 분석 🔸 n 종류의 화학 시약 t1, t2, ..., tn의 정보 ai와 bi, 그리고 M mg의 용액이 주어진다. 용액 중 x mg을 시약 ti 에 넣으면 ai*x+bi 만큼의 가스가 발생한다. n개의 화학 시약 모두 같은 양의 가스를 발생시킬 수 있으면 가스 양을 출력하고, 그럴 수 없으면 0을 출력한다. 용액이 남으면 안된다. 용액의 양 x mg 을 1부터 늘려가며 용액들에 넣어보고 같은 양의 가스가 발생하..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8eYLh/btrYIOOql9U/Kra2m1toxyDD6iZpQRHGn1/img.png)
👉 문제링크 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 🔸 문제 분석 🔸 n x n 크기의 영상 정보에서 0 또는 1로 압축된 결과를 출력한다. 정사각형이 하나의 수로만 이루어져 있으면 그 수로 압축가능하다. 해당 수를 출력한다. 다른 수가 섞여있으면, 정사각형을 4등분해서 다시 압축한다. 4등분 했을때 결과값은 () 괄호로 묶어 출력한다. 재귀를 이용해서 정사각형이 하나의 수로 이루어져있지 않으면 4등분 값을 다시 검사하는 방식으로 해결한다. 🔸 코드 🔸 import java.io.Buff..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bgODip/btrYH3ejwMU/w3qEOUyJLowSKQdzoPyPN1/img.png)
👉 문제링크 2312번: 수 복원하기 첫째 줄에 테스트 케이스의 수가 주어진다. 각 테스트 케이스마다 양의 정수 N (2 ≤ N ≤ 100,000)이 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 양의 정수 N이 주어지면 소인수 분해 결과를 출력한다. 2부터 N까지 나누며, 몫이 1이 될 때까지 반복한다. 나눈 수를 카운트한다 카운트한 나눈 수 들중에서 값이 1 이상인 것들만 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int tc = sc.nextInt(); StringBuilder sb = n..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/87S1p/btrYqT9ym8z/zNwAYiiqzL2LPmAq4jK5UK/img.png)
👉 문제링크 7507번: 올림픽 게임 각 테스트 케이스마다 "Scenario #i:"를 출력한다. 여기서 i는 테스트 케이스 번호이며 1부터 시작한다. 그 다음 줄에는 상근이가 참석할 수 있는 경기의 최대 개수를 출력한다. 문제에서도 설명했지 www.acmicpc.net 🔸 문제 분석 🔸 문제 한 경기가 끝나야 다음 경기를 볼 수 있다. 종료와 시작 시간이 완전히 같아도 볼 수 있다. 테스트 케이스 별, 한 사람이 볼 수 있는 최대 경기 수를 출력한다. 풀이 (Greedy) 경기 정보를 날짜와 종료 시간으로 오름차순 정렬 한다. 다음 경기를 볼 수 있으면 카운트 + 1을 한다. 다음 경기가 다음 날짜이면, 무조건 볼 수 있으므로 다음 경기로 이동한다. 다음 경기의 시작이 현재 경기의 종료 시간보다 같거나..