목록분류 전체보기 (157)
원하는 것은 뭐든지
문제풀이m과 n이 입력으로 주어지면 오른쪽과 아래쪽으로만 움직일 수 있는 로봇이 0,0에서 출발하여 m-1, n-1에 닿는 최소의 경우가 몇인지 출력하면 되는 문제.제출 1 - 정답class Solution { public int uniquePaths(int m, int n) { int[][] grid = new int[m][n]; //그리드 생성 for(int i=0;i 아주 간단한 문제이다. 일단 0에서 출발하여 x나 y에 0이 포함된 곳으로 최단거리로 갈 수 있는 경우는 한 가지밖에 없다.그리고 그 사이의 값 예를들어 1,1의 위치까지 갈 수 있는 방법은 0,1과 1,0까지 갈 수 있는 방법을 더한 것과 같다.왜냐하면 그 위치들에서 한칸만 움직이면 되기 때문이다..
문제풀이다이아, 철, 돌 곡괭이가 있다. 광물에는 다이아, 철, 돌이 있다.다이아 > 철 > 돌 순으로 곡괭이가 강력해서 다이아는 모든 광물을 피로도 1로 캐낼 수 있다. 철은 다이아는 5 나머지는 1의 피로도로 광물을 캘 수 있다. 돌은 다이아는 25 철은 5 돌은 1의 피로도로 캐낼 수 있다.한번 사용하기 시작한 곡괭이로는 무조건 5개의 광물을 캐내야 종료된다. 입력으로 다이아, 철, 돌 곡괭이의 개수와 캐야 하는 광물이 주어질 때 가장 적은 피로도로 광물을 캐내는 경우를 출력하면 된다. 제출 1 - 정답class Solution { private int answer; private List caseList; private int[] pick; public int solution..
문제풀이디펜스 게임을 하는데 적이 enemy에 적힌 순서대로 온다.적의 수만큼 내 병력을 소모시켜서 막을 수 있다.이 게임에는 스킬이 있는데 `무적권`이라는 스킬로 적의 수가 몇이든 턴을 넘길 수 있다.주어지는 내 병력 n, 무적권 횟수 k, 적의 배열 enemy 가 주어질 때 최대 몇 번의 턴을 넘길 수 있는지 출력하면 된다.풀이 1 - 오답import java.util.*;class Solution { public int solution(int n, int k, int[] enemy) { PriorityQueue heapK = new PriorityQueue(); PriorityQueue heapN = new PriorityQueue(Collections.reverseO..
문제풀이입력 첫 번째 줄에 부등호의 개수가 주어진다. 그다음 줄로 부등호들이 간격을 두고 주어진다.부등호의 앞뒤로 0~9의 숫자가 한번씩 들어갈 수 있는데 부등호 관계가 옳게 되어야 한다.부등호의 관계를 만족하는 경우 중에 가장 큰 수와 가장 작은 수를 차례대로 출력하면 된다.풀이 1 - 정답import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { //출력 값 클래스 멤버변수 선언 private static long max = Long.MIN_VALUE; private static long min ..